PHP Static延遲靜態綁定用法分析

高洛峰
發布: 2023-03-04 10:52:01
原創
1137 人瀏覽過

本文實例講述了PHP Static延遲靜態綁定用法。分享給大家參考,如下:

PHP5.3以後引進了延遲靜態綁定static,它是為了解決什麼問題呢? php的繼承模型中有一個存在已久的問題,那就是在父類別中引用擴展類別的最終狀態比較困難。來看一個例子。

class A 
{ 
  public static function echoClass(){ 
    echo __CLASS__; 
  }
  public static function test(){ 
    self::echoClass();    
  }
}
class B extends A 
{    
  public static function echoClass() 
  { 
     echo __CLASS__; 
  } 
} 
B::test(); //输出A
登入後複製

在PHP5.3中加入了一個新特性:延遲靜態綁定,就是把本來在定義階段固定下來的表達式或變量,改在執行階段才決定,比如當一個子類繼承了父類的靜態表達式的時候,它的值並不能被改變,有時不希望看到這種情況。

下面的範例解決了上面提出的問題:

class A 
{ 
  public static function echoClass(){ 
    echo __CLASS__; 
  } 
  public static function test() 
  { 
    static::echoClass();    
  } 
} 
class B extends A 
{    
  public static function echoClass(){ 
     echo __CLASS__; 
  } 
} 
B::test(); //输出B
登入後複製

第8行的static::echoClass();定義了一個靜態延遲綁定方法,直到B呼叫test的時候才執行原本定義的時候執行的方法。

希望本文所述對大家PHP程式設計有所幫助。

更多PHP Static延遲靜態綁定用法分析相關文章請關注PHP中文網!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板