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 ?>
以上是self在繼承中代表的是目前類別還是存取類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!