PHP类的特性实例分析


Posted in PHP onSeptember 28, 2016

本文实例讲述了PHP类的特性。分享给大家供大家参考,具体如下:

对象向下传递特性

当一个对象调用一个实例方法,然后在该方法中又去静态调用另一个类的方法,则在被静态调用的方法中获得源方法中的对象(this)

<?php
class bee{
  public $a = 1;
  public function f(){
    echo $this->a;
    echo '<br>';
    @lig::f();
  }
}
class lig{
  public $a = 2;
  public function f(){
    echo $this->a;
  }
}
$obj = new bee();
$obj->f();

运行结果为:

1
1

static 后期静态绑定

static有3个不同含义的语法

函数中的静态变量

function f(){
  static $v = 1;
}

类中的静态成员

class bee{
  static $v = 1;
  static function f(){}
}

方法中的动态指定‘当前类',与self不同,static所代表的是调用本方法的类(动态),self指其代码所在的类(静态)

class bee{
  static public $a = 10;
  static public function f(){
    echo get_class().':';
    echo self::$a.'-';
    echo static::$a;
  }
}
class lig extends bee{
  static public $a = 20;
}
echo bee::f();
echo '<br>';
echo lig::f();

运行结果如下:

bee:10-10
bee:10-20

面向对象三大思想

1. 封装

就是把数据封装起来尽量不给别人看,可以认为最基本的封装是把很多的数据封装类里面,但更严格地讲,是尽量将属性做成私有的,并通过共有的方法向外提供操作。

2. 继承

3. 多态

通常指的是一个对象用同样的方法得到不同的结果
也指不同的对象使用相同的方法得到不同的结果

PS:自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字 self,parent 或 static【本例测试运行环境为php5.3.3】。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php 高效率写法 推荐
Feb 21 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
PHP 使用memcached简单示例分享
Mar 05 PHP
PHP中include/require/include_once/require_once使用心得
Aug 28 PHP
PHP基于XMLWriter操作xml的方法分析
Jul 17 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
Yii框架常见缓存应用实例小结
Sep 09 PHP
PHP date_default_timezone_set()设置时区操作实例分析
May 16 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 #PHP
PHP会话操作之cookie用法分析
Sep 28 #PHP
PHP session会话操作技巧小结
Sep 27 #PHP
PHP简单预防sql注入的方法
Sep 27 #PHP
PHP数据对象PDO操作技巧小结
Sep 27 #PHP
PHP基于GD库的图像处理方法小结
Sep 27 #PHP
PHP文件上传操作实例详解
Sep 27 #PHP
You might like
PHP手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
Django 中 cookie的使用
2017/08/17 PHP
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
AngularJS基础 ng-readonly 指令简单示例
2016/08/02 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
详解nodejs 配置文件处理方案
2019/01/02 NodeJs
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
质检部岗位职责
2013/11/11 职场文书
区域销售经理岗位职责
2013/12/10 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
普通党员整改措施
2014/10/24 职场文书
新教师个人工作总结
2015/02/06 职场文书
停电通知范文
2015/04/16 职场文书
运动会1000米加油稿
2015/07/21 职场文书
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers