本文實例講述了PHP后期靜態(tài)綁定之self::限制。分享給大家供大家參考,具體如下:
在此我想講一講后期靜態(tài)綁,我想講self::
與static
進行比較說明。
官方文檔上是這樣定義的:
“后期綁定”的意思是說,static:: 不再被解析為定義當前方法所在的類,而是在實際運行時計算的。也可以稱之為”靜態(tài)綁定”,因為它可以用于(但不限于)靜態(tài)方法的調(diào)用。
在此我想用官方文檔上的一個例子來說明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();`
輸出結(jié)果為:
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();
輸出結(jié)果為:
B
注意,注意啦!這里用的是:static::
,以前很少在PHP中見過這種寫法吧?看到static::
,不禁想起來:self::
parent::
在此我想把self::
static::
parent::
進行一個比較:
self::
通常指向類本身,也就是self是不指向任何已經(jīng)實例化的對象,一般self使用來指向類中的靜態(tài)變量(不可以指向非靜態(tài)變量),但是可以訪問類中其他靜態(tài)方法與非靜態(tài)方法。它是當前類的指針。
parent::
是指向父類的指針,一般我們使用parent來調(diào)用父類的構(gòu)造函數(shù)。但也可以訪問父類的其他方法(不可以訪問其他靜態(tài)與非靜態(tài)變量)。
static::
通常用于后期靜態(tài)綁定中。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
您可能感興趣的文章:- PHP類與對象后期靜態(tài)綁定操作實例詳解
- 詳解PHP后期靜態(tài)綁定分析與應(yīng)用
- PHP面向?qū)ο笾笃陟o態(tài)綁定功能介紹
- PHP Static延遲靜態(tài)綁定用法分析
- PHP延遲靜態(tài)綁定示例分享
- 簡單談?wù)刾hp延遲靜態(tài)綁定
- php5.3后靜態(tài)綁定用法詳解
- php延遲靜態(tài)綁定實例分析
- PHP延遲靜態(tài)綁定的深入講解
- PHP后期靜態(tài)綁定實例淺析