新自我与新静态

我正在将PHP5.3库转换为PHP5.2。我遇到的主要障碍是使用了后期静态绑定,比如returnnewstatic($options),如果我将其转换为返回新的self($options)会得到相同的结果吗

新自我新静态之间有什么区别

我会得到同样的结果吗

不是真的。不过,我不知道PHP5.2有什么变通方法

新自我新静态之间有什么区别

self指实际编写new关键字的同一类

static,在PHP5.3后期的静态绑定中,指的是层次结构中调用方法的任何类

在下面的示例中,BA继承这两个方法。self调用绑定到A,因为它是在第一个方法的A实现中定义的,而static绑定到被调用的类(另请参见get\u called\u class()

A类{
公共静态函数get_self(){
返回新的自我();
}
公共静态函数get_static(){
返回新的static();
}
}
类B扩展了{}
echo get_类(B::get_self());//A.
echo get_类(B::get_static());//B
echo get_类(A::get_self());//A.
echo get_类(A::get_static());//A.

发表评论