面向对象PHP之静态延迟绑定
生活随笔
收集整理的這篇文章主要介紹了
面向对象PHP之静态延迟绑定
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
###定義 首先從字面上的意思來理解,“靜態”表示該用法是給靜態變量和方法來使用的,“延遲綁定”,是指在程序運行時而不是編譯時決定的。下面來看看代碼。 ###實例 首先我們定一個父類
class Father {public static $name="Father";public static function printName(){echo "I'm:". self::$name;} } 復制代碼再定義一個子類
class Son extends Father{public static $name="Son"; } 復制代碼分別調用子類和父類的printName方法
Father::printName(); echo "<br/>"; Son::printName(); 復制代碼運行結果如圖:
我們可以看到子類在調用繼承自父類的printName方法時,實際上是使用了父類的name屬性,可是在有的時候我們希望在子類在運行時調用自己類的name屬性。這時候我們就可以使用Static關鍵字來進行靜態延遲綁定,使代碼在運行時決定使用哪個類的屬性。修改父類的代碼如下。 class Father {public static $name="Father";public static function printName(){echo "I'm:". static::$name;} } 復制代碼再次運行如下:
我們可以看到在調用子類的繼承自父類的printName方法的時候static::$name 會自動調用子類的$name 屬性。做到了在運行時決定綁定。
總結
以上是生活随笔為你收集整理的面向对象PHP之静态延迟绑定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对 makefile中 order-on
- 下一篇: PostgreSQL在何处处理 sql查