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

Wie implementiert man einen PHP-Kettenaufruf?

coldplay.xixi
Freigeben: 2023-03-01 19:20:02
Original
3261 Leute haben es durchsucht

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();
Nach dem Login kopieren

Terminal-Ausführungsskript:

php test.php 
8
Nach dem Login kopieren

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();
Nach dem Login kopieren

Beschreibung: Die Funktion

array_unshift(array,value1,value2,value3...)
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage