PHP新特性之—后期静态绑定 从 PHP 5.3.0 开始,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类,即在类的继承过程中,使用的类不再是当前类,而是调用的类。 后期静态绑定使用关键字`static`来实现,通过这种机制,`static::`不再被解析为定义当前方法所在的类,而是在实际运行时计算得到的,即为运行时最初调用的类。 虽然将其称之为“后期静态绑定”,但它不仅限于静态方法的调用。 下面介绍一个具体实例: ```php <?php class A { public static function who() { echo "class A \n"; } public static function test() { self::who(); } } class B extends A { public static function who() { echo "class B \n"; } } B::test(); ``` 输出:`class A` ```bash demo zfs$ php index.php class A ``` 可见`self::`表示定义当前方法所在的类。 然后将`self`换成`static`代码如下: ```php <?php class A { public static function who() { echo "class A \n"; } public static function test() { static::who(); } } class B extends A { public static function who() { echo "class B \n"; } } B::test(); ``` 输出:`class B` ```bash demo zfs$ php index.php class B ``` 可见`static`表示调用方法的类即`class B`
《PHP新特性之—后期静态绑定》上有 2 条评论!