靜態訪問類的成員:
1.非轉發調用
1)類名明確(A::funcA())
2.轉發調用
1)self:: 2)parent:: 3)html' target='_blank'>static:: 4)forward_static_call() 5)get_called_class()
注意:
“后期綁定”的意思是說,static:: 不再被解析為定義當前方法所在的類,而是在實際運行時計算的。也可以稱之為“靜態綁定”,因為它可以用于(但不限于)靜態方法的調用。
?phpclass A { public static function foo() { static::who(); public static function who() { echo __CLASS__. /n class B extends A { public static function test() { A::foo(); parent::foo(); self::foo(); public static function who() { echo __CLASS__. /n class C extends B { public static function who() { echo __CLASS__. /n C::test();?運行結果:
ACNote:
繼承的財產屬于自己
繼承鏈 優先訪問當前類,依據保留字特性進行訪問,然后依據繼承鏈進行訪問。
$this 訪問成員 (調用上下文)
self:: 訪問成員(解析上下文)
?phpclass A{ protected $value = A value public function printValue(){ echo $this- value;class B extends A{ protected $value = B value $app = new B();$app- printValue();
運行結果:B value
?phpclass A{ //只有將屬性定義為靜態的才能使用self::進行調用 static protected $value = A static value public function printValue(){ echo self::$value;class B extends A{ static protected $value = B static value $app = new B();$app- printValue();
運行結果:A static value
?phpclass A{ static protected $value = A static value class B extends A{ public function printValue(){ echo self::$value;$app = new B();$app- printValue();
運行結果:A static value
相關推薦:
PHP想要實現頁面跳轉功能具體怎么操作?(函數標簽示例)
php下拉菜單及多級欄目怎么實現的?(代碼實測)以上就是php中非轉發調用以及轉發調用的代碼實例的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答