好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

self在继承中代表的是当前类还是访问类?

self 关键字是用于在类内部代替类的,代替的是当前方法所在的类本身那个,随着 继承 的实现,如果 子类 在访问 父类方法 的时候, self 到底代替的是当前类还是访问类?

<?php
   class Fu{
  public static $type="Fu";
  public static function getType(){
 echo self::$type." self<br>";
 
  }
   }

   class Zi extends Fu{
    public static $type="Zi";
    
   }
   Fu::gettype();//Fu self
   Zi::gettype();//Fu self
?>

由上例所示, self 代表的是当前类,即其所在的父类,而并非继承的子类。

如果在方法被访问时动态的选择来访者所属的类,则需要使用 static关 键字代替 self 进行类成员访问。

<?php
   class Fu{
  public static $type="Fu";
  public static function getType(){
 echo self::$type." self<br>";//类的静态绑定
 echo static::$type." static<br>";//类的静态延迟绑定
  }
   }

   class Zi extends Fu{
    public static $type="Zi";
    
   }

   Fu::gettype();//Fu self Fu self
   Zi::gettype();//Fu self Zi static
?>

推荐: php教程,php视频教程

以上就是self在继承中代表的是当前类还是访问类?的详细内容!

查看更多关于self在继承中代表的是当前类还是访问类?的详细内容...

  阅读:49次