PHP后期靜態(tài)綁定之self::限制實例分析
本文實例講述了PHP后期靜態(tài)綁定之self::限制。分享給大家供大家參考,具體如下:
在此我想講一講后期靜態(tài)綁,我想講self::
與static
進(jìn)行比較說明。
官方文檔上是這樣定義的:
“后期綁定”的意思是說,static:: 不再被解析為定義當(dāng)前方法所在的類,而是在實際運行時計算的。也可以稱之為”靜態(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::
進(jìn)行一個比較:
self::
通常指向類本身,也就是self是不指向任何已經(jīng)實例化的對象,一般self使用來指向類中的靜態(tài)變量(不可以指向非靜態(tài)變量),但是可以訪問類中其他靜態(tài)方法與非靜態(tài)方法。它是當(dāng)前類的指針。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è)計有所幫助。
相關(guān)文章
PHP基于Closure類創(chuàng)建匿名函數(shù)的方法詳解
這篇文章主要介紹了PHP基于Closure類創(chuàng)建匿名函數(shù)的方法,結(jié)合實例形式詳細(xì)分析了Closure 類的功能、常用函數(shù)使用技巧及相關(guān)注意事項,需要的朋友可以參考下2017-08-08在WINDOWS中設(shè)置計劃任務(wù)執(zhí)行PHP文件的方法
在網(wǎng)上找了些WINDOWS執(zhí)行PHP的計劃任務(wù)的方法,有一個寫得很全,可惜在我這竟然沒通過。最后不得不綜合各門派的方法,才能在我這運行成功2011-12-12