Heim >Backend-Entwicklung >PHP-Problem >Wie implementiert man einen PHP-Kettenaufruf?

Wie implementiert man einen PHP-Kettenaufruf?

coldplay.xixi
coldplay.xixiOriginal
2020-06-30 15:49:203272Durchsuche

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.

Wie implementiert man einen PHP-Kettenaufruf?

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

Terminal-Ausführungsskript:

php test.php 
8

Methode 2. Verwendung magische Funktion__callKombiniert 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(&#39;0&#39;)->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!

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
Vorheriger Artikel:Was ist PHP MVC?Nächster Artikel:Was ist PHP MVC?