后期静态绑定

最后更新于:2022-04-02 04:31:30

## 后期静态绑定 **self::** ```php test(); ``` 有没有办法突破php的这个特性呢,使其延后绑定,答案是:有,用关键字 static。 **static::** ```php class A { public static function who() { echo __CLASS__; } public static function test() { static::who(); // 后期静态绑定从这里开始 } } class B extends A { public static function who() { echo __CLASS__; } } B::test(); // B ``` > 该功能从语言内部角度考虑被命名为“后期静态绑定”。“后期绑定”的意思是说,static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法的调用。 更多细节、用法请查看官方文档。 ### 参考 [PHP: 后期静态绑定 - Manual](http://php.net/manual/zh/language.oop5.late-static-bindings.php) last update:2017-8-29 11:06:21
';