Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Überladung richtig verstehen

PHP-Überladung richtig verstehen

藏色散人
Freigeben: 2023-04-07 17:40:01
nach vorne
2054 Leute haben es durchsucht

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;
Nach dem Login kopieren

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);
    });
}
Nach dem Login kopieren

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]);
    }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage