PHP面向对象的后周期静态绑定功能

本文将介绍PHP的后期静态绑定功能,它主要用于解决在继承范围内引用静态调用的类。

首先,看下面的例子:

复制代码代码如下所示:

班上的人

{



公共静态函数状态()

{

自::getStatus();

}



保护静态函数getStatus()

{

回声人活着;

}



}



类死延人

{



保护静态函数getStatus()

{

回音人死了;

}



}



死者::状态();



显然,结果并不是我们所期望的,因为自我依赖于它定义的类,而不是运行中的类。要解决这个问题,您可以重写继承类中的状态()方法,更好的解决方案是在PHP 5.3之后添加静态绑定函数。

复制代码代码如下所示:

班上的人

{



公共静态函数状态()

{

静态::getStatus();

}



保护静态函数getStatus()

{

回声人活着;

}



}



类死延人

{



保护静态函数getStatus()

{

回音人死了;

}



}



死者::状态();



可见,静态::不指向当前类,事实上,它是在运行中计算的,强制最后类的所有属性。

因此,建议你不要使用自我:再次使用静态::