PHP面向对象的后周期静态绑定功能
首先,看下面的例子:
复制代码代码如下所示:
班上的人
{
公共静态函数状态()
{
自::getStatus();
}
保护静态函数getStatus()
{
回声人活着;
}
}
类死延人
{
保护静态函数getStatus()
{
回音人死了;
}
}
死者::状态();
显然,结果并不是我们所期望的,因为自我依赖于它定义的类,而不是运行中的类。要解决这个问题,您可以重写继承类中的状态()方法,更好的解决方案是在PHP 5.3之后添加静态绑定函数。
复制代码代码如下所示:
班上的人
{
公共静态函数状态()
{
静态::getStatus();
}
保护静态函数getStatus()
{
回声人活着;
}
}
类死延人
{
保护静态函数getStatus()
{
回音人死了;
}
}
死者::状态();
可见,静态::不指向当前类,事实上,它是在运行中计算的,强制最后类的所有属性。
因此,建议你不要使用自我:再次使用静态::