dongnong7524 2018-01-30 17:08
浏览 127
已采纳

用于魔术调用静态方法的PHPStorm代码完成(使用花括号语法)[Pendant]

Using the following code, the code completion works fine!

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();

But, its possible to IDE (PhpStorm) complete the code using the following php invocation method write style (Curly braces)?

//Code NOT completes fine ..
Test::{"foo"}();

If so, how? Thanks for the help!

  • 写回答

1条回答 默认 最新

  • dou6495 2018-02-02 10:29
    关注

    PhpStorm doesn't support dynamic fields/methods. For a static tool, it's hard to track which field/method is actually accessed. Let's take a look at a more realistic example.

    function foo($str) {
        //Code NOT completes fine ..
        Test::{$str}()->run();
    }
    

    This is how the dynamic invocation usually looks like. In a real code, $str is typically a combination of an external input (e.g. from a database) and business logic. Both are beyond the possibilities of a static analysis.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测