一张图轻松记住PHP的*类*以及private和protected的区别

 

 

上图概要的说了下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::

上图概要的说了下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::

猜你喜欢

转载自www.cnblogs.com/bearcao/p/9222485.html
今日推荐