ホームページ >バックエンド開発 >PHPチュートリアル >この文をどう理解すればいいでしょうか?

この文をどう理解すればいいでしょうか?

WBOY
WBOYオリジナル
2016-06-23 13:45:17863ブラウズ

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 メソッドを実行します



私の疑問は、なぜ 2 つの矢印を使用するのかということです。なぜなら、私の理解は Model('seo')->type('index') であるからです。オブジェクトはインスタンス化されます メソッドが呼び出され、その後に別のメソッドが呼び出されますが、 Model('seo')->type('index')
現時点ではオブジェクトではありません。どうすれば実行できますか?矢印を連続して使用できる場合 クラス内に多くのメソッドがあるということは、長い一連の矢印で呼び出すことができるということですか? Model('seo') seo オブジェクトを取得します
- >type('index') seo オブジェクトの type メソッドを実行します ->show(); seo オブジェクトの show メソッドを実行します

私の疑問は、なぜ 2 つの矢印を使用するのかということです。仕様、私の理解なので Model('seo' )->type('index')

オブジェクトがインスタンス化された後に呼び出されるメソッドであり、後で別のメソッドを呼び出しますが、Model('seo')->type ('index')

This Time はオブジェクトではありません。どうすればこれを行うことができますか?


呼び出されたメソッドは $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 が矢印の代わりにドットを使用しているだけです

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。