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

Drei Möglichkeiten, Kettenoperationen in PHP zu implementieren

藏色散人
Freigeben: 2023-04-07 13:12:02
nach vorne
3135 Leute haben es durchsucht

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

strlen(trim($str))
Nach dem Login kopieren

Wenn Sie Ich möchte beispielsweise eine ähnliche Kettenoperation wie in js implementieren. Wie soll ich Folgendes schreiben?

$str->trim()->strlen()
Nach dem Login kopieren

Das Folgende wird auf drei Arten implementiert:

Methode 1. Verwenden Sie die magische Funktion __call kombiniert mit call_user_func, um

Idee: Zuerst definieren Der Konstruktor weist der String-Klasse StringHelper direkt einen Wert zu und ruft dann die Funktionen trim() und strlen() in einer Kette auf. Die aufrufende Beziehung wird mithilfe von call_user_func in der aufgerufenen magischen Funktion __call() gehandhabt.

<?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. Verwenden Sie die magische Funktion __call in Kombination mit call_user_func_array, um

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

Anweisungen zu implementieren:

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

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

Methode drei: Verwenden Sie nicht die magische Funktion __call, um

Ändern Sie einfach _call() in die trim()-Funktion:

public function trim($t)
{
    $this->value = trim($this->value, $t);
    return $this;
}
Nach dem Login kopieren

Der Schlüssel Der Punkt besteht darin, den Zeiger $this zurückzugeben, um den Aufruf der letztgenannten Funktion zu erleichtern.

Empfohlen: „PHP-Video-Tutorial

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!

Verwandte Etiketten:
php
Quelle:segmentfault.com
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