我有一个类,我正在尝试创建一个函数,该函数将调用通过魔术方法运行的静态方法。问题是函数只要它们来自与调用它们的类不同类型的类,它们就可以工作,但是如果我调用同一类的静态函数,所有函数将返回 1。
class Test {
public function static __callStatic($name, $params) {
return 2;
}
public function __call($name, $params) {
return 1;
}
public function Test1() {
return Test::GetTwo();
}
}
class Test2 {
public function Test() {
return Test::GetTwo();
}
}
$t = new Test();
echo $t->Test1(); //prints 1 should be 2
$t2 = new Test2();
echo $t->Test(); //prints 2 as it should
即使静态方法 GetTwo() 返回一个对象,如果我在与 Test1() 相同的范围内调用一个函数,我仍然会得到 1。还有其他人遇到这个吗?