Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind die Implementierungsmethoden für den PHP-Kettenbetrieb?

Was sind die Implementierungsmethoden für den PHP-Kettenbetrieb?

青灯夜游
青灯夜游Original
2021-05-28 17:36:222306Durchsuche

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.

Was sind die Implementierungsmethoden für den PHP-Kettenbetrieb?

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()
Terminal-Ausführungsskript:

<?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(&#39;0&#39;)->strlen();

Methode 2. Verwenden Sie die magische Funktion __call kombiniert mit call_user_func_array zum Implementieren von

php test.php 
8

Anweisungen:

<?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(&#39;0&#39;)->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.

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...)

Der entscheidende Punkt ist, dass der $this-Zeiger zurückgegeben wird, um den Aufruf der letzteren Funktion zu erleichtern. 🎜🎜Empfohlenes Lernen: „🎜PHP-Video-Tutorial🎜“🎜

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!

Stellungnahme:
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