本篇文章簡單的敘述了PHP中的靜態綁定,對於PHP中的靜態綁定不太熟悉的同學可以一起來看看本篇關於php靜態綁定的文章哦!
後期靜態綁定工作原理是儲存了在上一個「非轉送呼叫」(non-forwarding call
)的類別名稱。
當靜態方法呼叫時,該類別名稱即為明確指定的那個(通常在:: 運算子左側部分);
當進行非靜態方法呼叫時,即為該物件所屬的類別。
所謂的「轉送呼叫」(forwarding call
)指的是透過以下幾種方式進行的靜態呼叫: self::
,parent::
,static::
以及forward_static_call()
。可用 get_called_class()
函數來得到被呼叫的方法所在的類別名,static::
則指出了其範圍。
使用self:: 或CLASS 對目前類別的靜態引用,取決於定義目前方法所在的類別:
範例:
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 :: test ();
結果:
// A
以上講述這篇文章的所有內容,大家在看過之後肯定是感覺很迷糊的,希望大家可以結合例子多看並自己實現兩篇!
相關推薦:
以上是php靜態綁定詳細敘述的詳細內容。更多資訊請關注PHP中文網其他相關文章!