php 鍊式呼叫問題,呼叫到5次之後phpstorm無法提示
伊谢尔伦
伊谢尔伦 2017-05-16 13:02:23
0
2
615

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 , 你說的方法都沒用,我試過。
無法貼圖,我在這裡給你發個圖吧

你看~

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!