PHP后期靜態(tài)綁定之self::限制實例分析
本文實例講述了PHP后期靜態(tài)綁定之self::限制。分享給大家供大家參考,具體如下:
在此我想講一講后期靜態(tài)綁,我想講self::與static進行比較說明。
官方文檔上是這樣定義的:
“后期綁定”的意思是說,static:: 不再被解析為定義當前方法所在的類,而是在實際運行時計算的。也可以稱之為”靜態(tài)綁定”,因為它可以用于(但不限于)靜態(tài)方法的調用。
在此我想用官方文檔上的一個例子來說明self::限制:
self::實例
class A{
public static function who(){
echo __CLASS__;
}
public static function test(){
self::who();
}
}
class B extends A{
public static function who(){
echo __class__;
}
}
$B=new B();
$B->test();`
輸出結果為:
A
static實例:
class A{
public static function who(){
echo __class__;
}
public static function test(){
static::who();
}
}
class B extends A{
public static function who(){
echo __class__;
}
}
$B=new B();
$B->test();
輸出結果為:
B
注意,注意啦!這里用的是:static::,以前很少在PHP中見過這種寫法吧?看到static::,不禁想起來:self:: parent::
在此我想把self:: static:: parent::進行一個比較:
self::通常指向類本身,也就是self是不指向任何已經實例化的對象,一般self使用來指向類中的靜態(tài)變量(不可以指向非靜態(tài)變量),但是可以訪問類中其他靜態(tài)方法與非靜態(tài)方法。它是當前類的指針。parent::是指向父類的指針,一般我們使用parent來調用父類的構造函數。但也可以訪問父類的其他方法(不可以訪問其他靜態(tài)與非靜態(tài)變量)。static::通常用于后期靜態(tài)綁定中。
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
PHP基于Closure類創(chuàng)建匿名函數的方法詳解
這篇文章主要介紹了PHP基于Closure類創(chuàng)建匿名函數的方法,結合實例形式詳細分析了Closure 類的功能、常用函數使用技巧及相關注意事項,需要的朋友可以參考下2017-08-08
在WINDOWS中設置計劃任務執(zhí)行PHP文件的方法
在網上找了些WINDOWS執(zhí)行PHP的計劃任務的方法,有一個寫得很全,可惜在我這竟然沒通過。最后不得不綜合各門派的方法,才能在我這運行成功2011-12-12

