搜索

首页  >  问答  >  正文

php 链式调用问题,调用到5次之后phpstorm无法提示

1.我定义了一个AR基类,里面的代码如下:

抽象类 AR 扩展 \PDO {
    抽象公共函数 from($tableName = '');
    抽象公共函数 where($condition = []);
    抽象公共函数 addWhere($condition = []);
    抽象公共函数 orderBy($orderBy = []);
    抽象公共函数 groupBy($groupBy = []);
    抽象公共函数having($condition = []);
}

2.又写了一个子类DB,集成AR。

class db 扩展 AR {
    公共函数选择($field = [])
    {
        // TODO: 实现 select() 方法。
        返回$这个;
    }

    公共函数来自($tableName = '')
    {
        // TODO: 实现 from() 方法。
        返回$这个;
    }

    公共函数 where($condition = [])
    {
        // TODO: 实现 where() 方法。
        返回$这个;
    }

    公共函数 addWhere($condition = [])
    {
        // TODO: 实现 andWhere() 方法。
        返回$这个;
    }

    公共函数 groupBy($groupBy = [])
    {
        // TODO: 实现 groupBy() 方法。
        返回$这个;
    }

    公共函数 orderBy($orderBy = [])
    {
        // TODO: 实现 orderBy() 方法。
        返回$这个;
    }

    公共函数具有($condition = [])
    {
        // TODO: 实现having() 方法。
        返回$这个;
    }
}

抽象方法的具体实现里,都返回了本身。

3.现在我在控制器文件里实例化db类,发现能正常调用 $this->db->select()->from()->where()-> ;queryAll(); 运行不报错。queryAll里可以进行操作。

< /p>

现在问题是我在phpstorm里面写代码的时候,写前面几个方法,编辑器可以智能提示,但是最后一个queryAll就不提示了,如果把这个链,删掉其中一个,就又可以提示了。感觉好像还是最多只能提示到第4个调用。但是我用yii的时候,链式调用7次能提示的。

< /p>

伊谢尔伦伊谢尔伦2750 天前632

全部回复(2)我来回复

  • 習慣沉默

    習慣沉默2017-05-16 13:04:23

    phpStorm不能识别queryAll方法返回值,给不了提示。
    添加注解后, phpstorm可以自动识别

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 13:04:23

    @order_c , 你说的方法都没用,我试过。
    无法贴图,我在这里给你发个图吧

    你看~

    回复
    0
  • 取消回复