PHP Static延遲靜態繫結用法分析

來源:互聯網
上載者:User
本文執行個體講述了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();定義了一個靜態延遲Binder 方法,直到B調用test的時候才執行原本定義的時候執行的方法。

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.