Inhaltsverzeichnis
Heim
Backend-Entwicklung
PHP-Tutorial
Das Anwendungsobjekt $app in Laravel wird als $app[$k] geschrieben, es wird jedoch kein Fehler gemeldet! Warum?



Das Anwendungsobjekt $app in Laravel wird als $app[$k] geschrieben, es wird jedoch kein Fehler gemeldet! Warum?
laravel
php
In der Methode getConfig
in der Klasse IlluminateFilesystemFilesystemManager
in Laravel 5.1 verwendet
tatsächlich
$this->app['config']["filesystems.disks.{$name}"]);
Nach dem Login kopieren
Nach dem Login kopieren
Gibt ein Array zurück.
Aber
$this->app
Nach dem Login kopieren
Nach dem Login kopieren
Es ist offensichtlich ein Ziel.
Kann ein Objekt mithilfe des Schlüsselwerts eines Arrays abgerufen werden? Das ist offensichtlich grammatikalisch falsch, aber es ist trotzdem etwas Magisches passiert
Dies ist die getConfig-Methode
/** * Get the filesystem connection configuration. * * @param string $name * @return array */ protected function getConfig($name) { return $this->app['config']["filesystems.disks.{$name}"]; }
Nach dem Login kopieren
Nach dem Login kopieren
Ich habe separat dd($this->app);
Das ist wie folgt
/** * Get the filesystem connection configuration. * * @param string $name * @return array */ protected function getConfig($name) { dd($this->app); return $this->app['config']["filesystems.disks.{$name}"]; }
Nach dem Login kopieren
Nach dem Login kopieren
Ausgabe
Aber ich dd($this->app'config'); das ist
protected function getConfig($name) { dd($this->app['config']["filesystems.disks.{$name}"]); return $this->app['config']["filesystems.disks.{$name}"]; }
Nach dem Login kopieren
Nach dem Login kopieren
Dann ist die Ausgabe wie folgt
Kurz gesagt, $app ist offensichtlich ein Objekt. Wie kann es in der Form $app[$k] geschrieben werden?