網站建設:php 后期靜態綁定

2020-02-18   瀏覽量:

PHP 5.3.0 起,PHP 增加了一個叫做后期靜態綁定的功能,用于在繼承范圍內引用靜態調用的類,這個是php官方的解釋,即在類的繼承過程中,使用的類不再是當前類,而是調用類。后期靜態綁定使用關鍵字static來實現,通過這種機制,“static::”不在解析為定義當前方法所在的類,而是在實際運行時計算得到的,即運行時最初調用的類。雖然將其稱之為“后期靜態綁定”,但它不僅限制于靜態方法的調用

請看下面的實例


  1. <?php
  2. class A{
  3. public static function call(){
  4. echo "class A<br/>";
  5. }
  6. public static function test(){
  7. self::call();
  8. static::call();
  9. }
  10. }
  11. class B extends A{
  12. public static function call(){
  13. echo "class B";
  14. }
  15. }
  16. B::test();

輸出結果:
網站建設:php 后期靜態綁定


  1. class A
  2. class B

通過上面的代碼可以看到,在調test方法的時候,“self::”是直接調用本類的方法,static 是根據調用test方法的類來決定的“static::”的值,因此static的值只有在調用時才能確定下來,而self則是在定義是就確定下來。需要注意的是static并不限于靜態方法

上一篇:Python使用Srapy框架爬蟲模擬登陸并抓取知乎內容              下一篇:最后一頁

有什么赌大小的软件