So implementieren Sie die Kettenoperation 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 trim()-Funktion, um es zu implementieren.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Es gibt viele Zeichenfolgenfunktionen in PHP, zum Beispiel müssen Sie die Leerzeichen am Ende der Zeichenfolge filtern Finden Sie zuerst die Länge heraus und ermitteln Sie dann die allgemeine Schreibweise:
strlen(trim($str))
Wenn Sie beispielsweise eine Kettenoperation ähnlich wie bei js implementieren möchten, wie sollten Sie sie wie folgt schreiben? Drei Möglichkeiten, es zu implementieren:
Methode 1. Verwenden Sie die Kombination aus magischer Funktion und __Aufruf. Call_user_func wird implementiert.Gedanke:
Definieren Sie zunächst eine String-Klasse StringHelper. Der Konstruktor weist den Wert direkt zu und ruft dann trim () und strlen auf ()-Funktionen in einer Kette, indem call_user_func in der aufgerufenen magischen Funktion __call() verwendet wird. Um die Aufrufbeziehung zu handhaben, ist die Implementierung wie folgt: $str->trim()->strlen()
<?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();
php test.php
8
<?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();
array_unshift()</ code>-Funktion wird verwendet, um neue Elemente in ein Array einzufügen. Die Werte des neuen Arrays werden am Anfang des Arrays eingefügt. </p><p><code>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. array_unshift()
函数用于向数组插入新元素。新数组的值将被插入到数组的开头。
call_user_func()
和call_user_func_array
都是动态调用函数的方法,区别在于参数的传递方式不同。
方法三、不使用魔法函数__call,利用trim()函数来实现
只需要修改_call()
为trim()
Methode drei: Verwenden Sie nicht die magische Funktion __call, sondern verwenden Sie die Funktion trim(), um
Ändern Sie einfach _call()
in trim()
Funktion:
array_unshift(array,value1,value2,value3...)
Das obige ist der detaillierte Inhalt vonWas sind die Implementierungsmethoden für den PHP-Kettenbetrieb?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!