self
是一種靜態綁定,換言之就是當類別進行編譯的時候self
已經明確綁定了類別名,因此不論多少繼承
,也不管是子類別
還是父類別
自己來進行訪問,self
代表都是目前類別
。如果想要選擇性的來支援來訪者,就需要使用靜態延遲綁定
.
定義:靜態延遲綁定
,即在類別內用來代表類別本身的關鍵字部分不是在類別編譯時固定好,而是當方法被存取時動態的選擇來訪者所屬的類別。 靜態延遲綁定
就是利用static
關鍵字取代靜態綁定self
,靜態延遲綁定需要使用到靜態成員的重寫。
1.靜態延遲綁定:使用static
關鍵字取代self
進行類別成員
存取
<?php //父类 class People{ public static $name = 'People'; public static function showName(){ //静态绑定 echo self::$name,'<br/>';//self //静态延迟绑定 echo static::$name,'<br/>'; } } //子类 class Man extends People{ //重写父类静态属性 public static $name = 'Man'; //静态属性因为存储在类内部,因此不会覆盖 } //子类访问 echo Man::$name."<br>";//Man Man::showName();//输出People和Man ?>
2.靜態延遲綁定一定是透過繼承後的子類別來進行存取才有效果
//接上述代码 People::showName();//输出People People
推薦:php視訊教學
以上是php中的self代表目前類,那又該如何取得存取類別的資料呢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!