PHP-Überladung unterscheidet sich von Java-Überladung und kann nicht verwechselt werden. Java erlaubt mehrere Funktionen mit demselben Namen in einer Klasse, und jede Funktion hat unterschiedliche Parameter, während PHP nur eine Funktion mit demselben Namen zulässt. Java kann beispielsweise mehrere Konstruktoren haben, PHP jedoch nur einen Konstruktor.
Überladung von PHP bezieht sich auf die dynamische Erstellung von Attributen und Klassen durch magische Methoden
● Überladung von Attributen – Überladung von __get und __set
● Methoden – __call und __callStatic
Zum Beispiel implementiert die Anforderungsklasse von Laravel eine Attributüberladung, wodurch der Code prägnanter wird
$name = $request->name;
Dieses Attribut existiert nicht in der Klasse, sondern wird über die magische Methode übergeben. Zu besuchen ist die spezifische Implementierung wie folgt
public function __get($key) { return Arr::get($this->all(), $key, function () use ($key) { return $this->route($key); }); }
Diese Implementierungsmethode ist weit verbreitet und das Implementierungsprinzip ist einfach zusammengefasst
class Foo { private $params = []; function __construct(array $params = []) { $this->params = $params; } public function __set($name, $value) { $this->params[$name] = $value; } public function __get($name) { return $this->params[$name]; } public function __isset($name) { return isset($this->params[$name]); } public function __unset($name) { unset($this->params[$name]); } }
Das obige ist der detaillierte Inhalt vonPHP-Überladung richtig verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!