Heim  >  Artikel  >  Backend-Entwicklung  >  Drei Möglichkeiten, Kettenoperationen in PHP zu implementieren

Drei Möglichkeiten, Kettenoperationen in PHP zu implementieren

墨辰丷
墨辰丷Original
2018-05-17 11:31:401548Durchsuche

Dieser Artikel stellt hauptsächlich drei Möglichkeiten zur Implementierung von Kettenoperationen in PHP vor und analysiert die relevanten Implementierungstechniken und Verwendungsvorkehrungen von PHP-Kettenoperationen in Form von Beispielen. Weitere Informationen finden Sie unter

folgt:

Es gibt viele String-Funktionen in PHP. Beispielsweise müssen Sie zuerst die Leerzeichen am Ende des Strings filtern und dann seine Länge ermitteln:


strlen(trim($str))


Wenn Sie beispielsweise eine Kettenoperation ähnlich der in js implementieren möchten, wie sollten Sie sie wie folgt schreiben?


$str->trim()->strlen()


Es gibt drei Möglichkeiten, dies zu erreichen:

Methode 1. Verwenden Sie den magischen Funktionsaufruf wird mit call_user_func kombiniert, um

zu implementieren. Idee: Definieren Sie zuerst eine String-Klasse StringHelper, der Konstruktor weist den Wert direkt zu und ruft dann die Funktionen trim() und strlen() in a auf Kette, durch Verwenden Sie call_user_func in der aufgerufenen magischen Funktion __call(), um die aufrufende Beziehung zu verarbeiten. Die Implementierung ist wie folgt:


<?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();


Terminalausführungsskript:


php test.php 
8


Methode 2. Verwenden Sie die magische Funktion __call kombiniert mit call_user_func_array, um

zu implementieren


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

array_unshift(array,value1,value2,value3.. .) Mit der Funktion

array_unshift() werden neue Elemente in ein Array eingefügt. 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 nicht die 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 ist, dass der $this-Zeiger zurückgegeben wird, um den Aufruf der letztgenannten Funktion zu erleichtern.


Verwandte Empfehlungen:

Fragen Sie die PHP-Zeichenfolge ab, die bestimmte Daten enthält

Zeichen in PHP Drei Möglichkeiten, Strings auszudrücken

Häufig verwendete String-Funktionen in PHP

Das obige ist der detaillierte Inhalt vonDrei Möglichkeiten, Kettenoperationen in PHP zu implementieren. 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