ホームページ  >  記事  >  バックエンド開発  >  laravel のアプリケーション オブジェクト $app は $app[$k] と書かれていますが、エラーは報告されません。なぜ?

laravel のアプリケーション オブジェクト $app は $app[$k] と書かれていますが、エラーは報告されません。なぜ?

WBOY
WBOYオリジナル
2016-12-01 01:27:431248ブラウズ

laravel 5.1
IlluminateFilesystemFilesystemManagerクラスの
getConfigメソッドでは、は実際に
を使用します リーリー

配列を返します。

でも

リーリー

明らかにターゲットです。

配列のキー値を使用してオブジェクトを取得できますか? これは明らかに文法的に間違っていますが、とにかく何か魔法のようなことが起こりました

これはgetConfigメソッドです

リーリー

私一人でdd($this->app);

それは以下の通りです
リーリー

出力

laravel のアプリケーション オブジェクト $app は $app[$k] と書かれていますが、エラーは報告されません。なぜ?

しかし、私は dd($this->app'config'); です。 リーリー

出力は次のようになります

laravel のアプリケーション オブジェクト $app は $app[$k] と書かれていますが、エラーは報告されません。なぜ? つまり、$app は明らかにオブジェクトですが、$app[$k] という形式でどのように記述することができるのでしょうか?

返信内容:

laravel 5.1の

IlluminateFilesystemFilesystemManagerクラスの
getConfigメソッドでは、
は実際にを使用します リーリー 配列を返します。

でも

リーリー

明らかにターゲットです。

配列のキー値を使用してオブジェクトを取得できますか? これは明らかに文法的に間違っていますが、とにかく何か魔法のようなことが起こりました

これはgetConfigメソッドです
リーリー

私一人でdd($this->app);

それは以下の通りです

リーリー

出力

しかし、私は dd($this->app'config'); です。 リーリー laravel のアプリケーション オブジェクト $app は $app[$k] と書かれていますが、エラーは報告されません。なぜ?出力は次のようになります

つまり、$app は明らかにオブジェクトですが、$app[$k] という形式でどのように記述することができるのでしょうか?

laravel のアプリケーション オブジェクト $app は $app[$k] と書かれていますが、エラーは報告されません。なぜ?

app は (http://php.net/manual/zh/clas...) インターフェースを継承します。 ArrayAccess インターフェイスは、配列にアクセスするのと同じようにオブジェクトにアクセスする機能を提供します。インターフェイスのいくつかのメソッドを実装している限り、isset、unset、[] を呼び出して値にアクセスできます。

ArrayAccessも実装しているので、配列としても使えます。 IlluminateContainerContainer, 而 Container 实现了ArrayAccess

$this->app['config'] 也是个对象 IlluminateConfigRepository

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