Heim  >  Artikel  >  Backend-Entwicklung  >  Wie man das Neuladen von PHP versteht

Wie man das Neuladen von PHP versteht

王林
王林nach vorne
2020-01-31 21:34:452373Durchsuche

Wie man das Neuladen von PHP versteht

Wir wissen, dass sich PHP-Überladung von Java-Überladung unterscheidet. 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 in PHP bezieht sich auf die dynamische Erstellung von Eigenschaften und Klassen durch magische Methoden.

1. Überladung von Attributen: __get und __set

2. Überladung von Methoden: __call und __callStatic

(Online-Lernvideo-Sharing: php-Video-Tutorial)

Zum Beispiel: Die Anforderungsklasse von Laravel implementiert eine Attributüberladung, wodurch der Code prägnanter wird

$name = $request->name;

Dieses Attribut existiert nicht in der Klasse, sondern wird durchgeleitet. Die spezifische Implementierung lautet wie folgt:

public function __get($key)
{    
return Arr::get($this->all(), $key, function () use ($key) { 
       return $this->route($key);    });
}

Diese Implementierungsmethode wird häufig verwendet, zum Beispiel das Prinzip der induktiven Implementierung:

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]);
    }
}

Empfohlene verwandte Artikel und Tutorials: PHP-Tutorial

Das obige ist der detaillierte Inhalt vonWie man das Neuladen von PHP versteht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen