PHP中类静态调用和范围解析操作符的区别解析

时间:2022-05-04 01:07:58

具体代码如下所示:

  1. <?php 
  2. //在子或类内部用“::”调用本类或父类时,不是静态调用方法,而是范围解析操作符。 
  3. class ParentClass { 
  4.  public static $my_static = 'parent var '
  5.  function test() { 
  6.   self::who(); // 输出 'parent' 是范围解析,不是静态调用 
  7.   $this->who(); // 输出 'child' 
  8.   static::who(); // 延迟静态绑定 是范围解析,不是静态调用 
  9.  } 
  10.  function who() { 
  11.   echo 'parent<br>'
  12.  } 
  13. class ChildClass extends ParentClass { 
  14.  public static $my_static = 'child var '
  15.  function who() { 
  16.   echo 'child<br>'
  17.  } 
  18. $obj = new ChildClass(); 
  19. $obj->test(); 
  20. echo ChildClass::$my_static;//静态调用 

上面输出

parent

child

child

child var

总结

以上所述是小编给大家介绍的PHP中类静态调用和范围解析操作符的区别解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!