上图概要的说了下 PHP 类的特性,类的方法同属性类似。
图中 B 类继承自 A 类,B 是 A 的子类,$x 和 $y 都是 B 的实例化对象。
1. 原型引用:【A:: 、 B:: 】,仅限 public static 属性和方法
2. 实例引用:【$x-> 、$y-> 】,仅限 public 属性和 public 方法以及 public static 方法
3. 关于 self:: 和 parent:: (类引用)
self:: 当前方法所属的类
parent:: 父类
如果 self:: 后面的属性或者方法未在当前类中定义,会尝试用 parent:: 替代 self::
self:: 和 parent:: 后面只能跟方法名或静态属性
4. 关于 $this (对象引用)
$x->f () 中的 $this 是 $x。
$y->f () 中的 $this 是 $y。
$this-> 后面可以是动态属性以及动态或静态方法。
5. 关于 static::
static:: 引用当前使用的类,类似 $this,但可以在未实例化的类中使用,在已实例化对象中可以理解成等同于 $this
6. 关于 static
static 标识的属性只能通过 self:: 、parent::、static:: 、类名::静态引用,不能通过 $this-> 对象引用
6. 关于 public 、protected 、private
public : 可以在任何地方引用
protected : 只能在类中引用,$this-> 、parent::
private : 只能在本类中引用,$this->、self::