PHP後期靜態繫結之self 限制例項分析

2022-09-26 07:03:15 字數 616 閱讀 5948

程式設計客棧在此我想講一講後期靜態綁,我想講self::與static進行比較說明。

官方文件上是這樣定義的:

「後期繫結」的意思是說,static:: 不再被解析為程式設計客棧定義當前方法所在的類,而是在實際執行時計算的。也可以稱之為」靜態繫結」,因為它可以用於(但不限於)靜態方法的呼叫。

在此我想用官方文件上的乙個例子來說明self::限制:

self::例項

class a

public static function test()

}class b extends a

}$b=new b();

$b->test();`

輸出結果為:

astatic例項:

class a

public static function test()

}class b extends a

}$b=new b();

$b->test();

輸出結果為:

b注意,注意啦!這裡用的是:static::,以前很少在php中見過這種寫法吧?看到static::,不禁想起來:self::parent::

在此我想把self::static::parent::進行乙個比較:

php後期靜態繫結

後期靜態繫結 static 不再被解析為定義當前方法或屬性所在的類,而是在實際執行時計算的 可用 get called class 函式來得到被呼叫的方法所在的類名 this是指向當前物件 self 指向當前的類 self就是寫在哪個類裡面,實際呼叫的就是這個類 parent 指向父類 static...

php中後期靜態繫結(延遲靜態繫結)技術

定義乙個父類 這就要用到後期靜態繫結的技術,所謂後期,是指靜態方法的呼叫者,只有在執行狀態下才進行動態繫結,使用關鍵字 static 來實現,此時,static 就像乙個變數,始終與當前的呼叫類是繫結的class father 靜態方法 訪問當前類中的其它靜態成員 public static fun...

PHP高階特性 後期靜態繫結

後期繫結 的意思是說,static 不再被解析為定義當前方法所在的類,而是由最終運算時動態決定。也可以稱之為 靜態繫結 因為它可以用於 但不限於 靜態方法的呼叫。class a publicstaticfunction test class b extends a b test 輸出 class a...