So implementieren Sie Kettenaufrufe in PHP: 1. Verwenden Sie die magische Funktion [_call] in Kombination mit [call_user_func], um sie zu implementieren. 2. Verwenden Sie die magische Funktion [_call] in Kombination mit [call_user_func_array], um sie zu implementieren. 3. Tun Sie dies nicht Verwenden Sie die magischen Funktionen 【_call】, um dies zu erreichen.
So implementieren Sie einen PHP-Kettenaufruf:
Methode 1. Verwenden Sie die magische Funktion__call
Kombinieren call_user_func
, um die
-Idee zu implementieren: Definieren Sie zunächst eine String-Klasse StringHelper, der Konstruktor weist den Wert direkt zu und ruft dann die Funktionen trim()
und strlen()
über die magische Funktion namens Use in einer Kette auf __call()
in call_user_func
zur Handhabung der Aufrufbeziehung:
<?php class StringHelper { private $value; function __construct($value) { $this->value = $value; } function __call($function, $args){ $this->value = call_user_func($function, $this->value, $args[0]); return $this; } function strlen() { return strlen($this->value); } } $str = new StringHelper(" sd f 0"); echo $str->trim('0')->strlen();
Terminal-Ausführungsskript:
php test.php 8
Methode 2. Verwendung magische Funktion__call
Kombiniert mit call_user_func_array
zur Implementierung von
<?php class StringHelper { private $value; function __construct($value) { $this->value = $value; } function __call($function, $args){ array_unshift($args, $this->value); $this->value = call_user_func_array($function, $args); return $this; } function strlen() { return strlen($this->value); } } $str = new StringHelper(" sd f 0"); echo $str->trim('0')->strlen();
Beschreibung: Die Funktion
array_unshift(array,value1,value2,value3...)
array_unshift()
wird verwendet, um neue Elemente in das einzufügen Array. Die Werte des neuen Arrays werden am Anfang des Arrays eingefügt.
call_user_func()
und call_user_func_array
sind beide Methoden zum dynamischen Aufrufen von Funktionen. Der Unterschied liegt in der Art und Weise, wie Parameter übergeben werden.
Methode drei: Verwenden Sie keine magische Funktion __call
, um
zu implementieren. Ändern Sie einfach _call()
in die Funktion trim()
:
public function trim($t) { $this->value = trim($this->value, $t); return $this; }
Der entscheidende Punkt besteht darin, den $this
-Zeiger zurückzugeben, um den Aufruf der letztgenannten Funktion zu erleichtern.
Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Beherrschung
Das obige ist der detaillierte Inhalt vonWie implementiert man einen PHP-Kettenaufruf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!