這句話如何理解呢

來源:互聯網
上載者:User
Model('seo')->type('index')->show();

最後翻譯一下


回複討論(解決方案)

Model('seo') 得到一個 seo 對象
->type('index') 執行 seo 對象的 type 方法
->show(); 執行 seo 對象的 show 方法

Model('seo') 得到一個 seo 對象
->type('index') 執行 seo 對象的 type 方法
->show(); 執行 seo 對象的 show 方法



我的疑惑是,為啥用兩個箭頭呢,那樣符合文法規範嗎,因為我的理解 Model('seo')->type('index')
它是對象執行個體化後調用的一個方法,而它後面又再調用一個方法,但是 Model('seo')->type('index')
它此時可不是對象啊,怎麼能行呢

如果能連續用箭頭的話,那麼一個類中有很多方法,是不是說,能用一長串箭頭調用的寫法呢


Model('seo') 得到一個 seo 對象
->type('index') 執行 seo 對象的 type 方法
->show(); 執行 seo 對象的 show 方法



我的疑惑是,為啥用兩個箭頭呢,那樣符合文法規範嗎,因為我的理解 Model('seo')->type('index')
它是對象執行個體化後調用的一個方法,而它後面又再調用一個方法,但是 Model('seo')->type('index')
它此時可不是對象啊,怎麼能行呢



調用的方法 返回 $this 即可這樣級聯

class  Orange{    public function a(){        echo "a";        return $this;    }    public function b(){        echo "b";        return $this;    }    public function c(){        echo "c";        return $this;    }}$orange = new Orange();$orange->a()->c()->b();


acb

只要這些函數(方法)返回的是對象,就可以用這種連續操作的寫法

但是Model('seo')->type('index') 它此時可不是對象啊
你怎麼知道他不是對象?

突然明白了!原來javascript中的連綴就是用的這個原理。

突然明白了!原來javascript中的連綴就是用的這個原理。


只不過javascript中用的是 點而不是 箭頭罷 了
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.