php中static和self的区别
生活随笔
收集整理的這篇文章主要介紹了
php中static和self的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在閱讀一些框架的源碼時發現了new static(),和new self(),甚是不解,后來查閱資料,才知道static采用了延遲綁定,能準確知道是父類還是子類的調用。這就是說static是個聰明的小孩,家里的親戚的輩分他都能準確的叫出;而不是像他的兄弟self,只知道自己的親爹媽。
例子如下:
<?phpclass Father{protected static $name = "father";public static function whoami_self(){echo self::$name."\n";}public static function whoami_static(){echo static::$name."\n";}public static function getInstance_self(){return new self();}public static function getInstance_static(){return new static();} }class FatherBrother extends Father{protected static $name = "uncle"; }FatherBrother::whoami_self(); //father FatherBrother::whoami_static(); //uncle var_dump(FatherBrother::getInstance_self()); //father var_dump(var_dump(FatherBrother::getInstance_static())); //uncle
轉載至:https://www.cnblogs.com/xdao/p/static_self_in_php.html
轉載于:https://www.cnblogs.com/starfish29/p/11217138.html
總結
以上是生活随笔為你收集整理的php中static和self的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP基础——语法篇
- 下一篇: C#_完整的RSA操作类