使用以下代码,代码完成工作正常!
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调用方法编写样式(大括号(来完成代码吗?
//Code NOT completes fine ..
Test::{"foo"}();
如果是这样,如何?感谢您的帮助!
PhpStorm 不支持动态字段/方法。对于静态工具,很难跟踪实际访问的字段/方法。让我们看一个更现实的例子。
function foo($str) {
//Code NOT completes fine ..
Test::{$str}()->run();
}
这就是动态调用通常的样子。在实际代码中,$str
通常是外部输入(例如来自数据库(和业务逻辑的组合。两者都超出了静态分析的可能性。