我正在围绕"static ::"关键字开发一些PHP,并遇到一个问题,即太多的静态调用会导致方法所在的位置混淆.通过示例显示更容易:
class Class1
{
function Test()
{
return Class2::Test();
}
}
class Class2
{
function Test()
{
return static::Test2();
}
function Test2()
{
return true;
}
}
/* test 1: calling Class1::Test() statically results in expected call to Class2::Test2() */
echo "test 1: " . Class1::Test() . "\n";
/* test 2: instantiating the class causes Class1::Test2() to be called, which does not exist */
$Class1 = new Class1();
echo "test 2: " . $Class1->Test() . "\n";
Run Code Online (Sandbox Code Playgroud)
我想联系并获得PHP专家的意见,他们可以告诉我这可能是一个真正的错误还是简单的误用语言.
我意识到所有静态调用的设置可能都很奇怪,但它代表了我遇到的实际代码.
如果需要更多信息或说明,请与我们联系.在此先感谢您的帮助!
| 归档时间: |
|
| 查看次数: |
443 次 |
| 最近记录: |