php 链式调用问题,调用到5次之后phpstorm无法提示
伊谢尔伦
伊谢尔伦 2017-05-16 13:02:23
0
2
618

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

abstract class AR extends \PDO {
    abstract public function from($tableName = '');
    abstract public function where($condition = []);
    abstract public function addWhere($condition = []);
    abstract public function orderBy($orderBy = []);
    abstract public function groupBy($groupBy = []);
    abstract public function having($condition = []);
}

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

class db extends AR {
    public function select($field = [])
    {
        // TODO: Implement select() method.
        return $this;
    }

    public function from($tableName = '')
    {
        // TODO: Implement from() method.
        return $this;
    }

    public function where($condition = [])
    {
        // TODO: Implement where() method.
        return $this;
    }

    public function addWhere($condition = [])
    {
        // TODO: Implement andWhere() method.
        return $this;
    }

    public function groupBy($groupBy = [])
    {
        // TODO: Implement groupBy() method.
        return $this;
    }

    public function orderBy($orderBy = [])
    {
        // TODO: Implement orderBy() method.
        return $this;
    }

    public function having($condition = [])
    {
        // TODO: Implement having() method.
        return $this;
    }
}

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

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

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

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

모든 응답(2)
習慣沉默

phpStorm은 queryAll 메서드의 반환 값을 인식할 수 없으며 프롬프트를 표시할 수 없습니다.
주석을 추가한 후 phpstorm은 자동으로

을 인식할 수 있습니다.
淡淡烟草味

@order_c, 당신이 언급한 방법 중 어느 것도 작동하지 않았지만 시도해 보았습니다.
사진을 올릴 수 없어서 여기로 사진 보내드릴게요

보세요~

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿