使用以下代码,代码完成工作正常!
class FooClass
{
public function run(){}
}
/**
* @method static FooClass foo(bool $param1 = false)
*/
class Test
{
public static function __callStatic($name, $arguments)
{
//Implementation code ..
}
}
//Code completes fine for FooClass methods ..
Test::foo()->run();
但是,它可以用IDE(PhpStorm)完成代码,使用下面的php调用方法写样式(Curly braces)?
//Code NOT completes fine ..
Test::{"foo"}();
如果是这样,怎么样?谢谢你的帮助!
答案 0 :(得分:1)
PhpStorm不支持动态字段/方法。对于静态工具,很难跟踪实际访问的字段/方法。让我们来看一个更现实的例子。
function foo($str) {
//Code NOT completes fine ..
Test::{$str}()->run();
}
这是动态调用通常的样子。在实际代码中,$str
通常是外部输入(例如,来自数据库)和业务逻辑的组合。两者都超出了静态分析的可能性。