Heim > Backend-Entwicklung > PHP-Tutorial > Implementierung des PHP-Kettenbetriebs

Implementierung des PHP-Kettenbetriebs

Freigeben: 2023-04-08 13:22:01
nach vorne
3124 Leute haben es durchsucht

Implementierung des PHP-Kettenbetriebs

Der Schlüssel zur PHP-Kettenoperation besteht darin, $this nach Abschluss der Operation zurückzugeben

1. Implementieren Sie die Kettenoperation ohne Verwendung der __call-Methode

<?php
class Sql{
    private $sql=array("from"=>"",
            "where"=>"",
            "order"=>"",
            "limit"=>"");

    public function from($tableName) {
        $this->sql["from"]="FROM ".$tableName;
        return $this;
    }

    public function where($_where=&#39;1=1&#39;) {
        $this->sql["where"]="WHERE ".$_where;
        return $this;
    }

    public function order($_order=&#39;id DESC&#39;) {
        $this->sql["order"]="ORDER BY ".$_order;
        return $this;
    }

    public function limit($_limit=&#39;30&#39;) {
        $this->sql["limit"]="LIMIT 0,".$_limit;
        return $this;
    }
    public function select($_select=&#39;*&#39;) {
        return "SELECT ".$_select." ".(implode(" ",$this->sql));
    }
}

$sql =new Sql();

echo $sql->from("testTable")->where("id=1")->order("id DESC")->limit(10)->select();
//输出 SELECT * FROM testTable WHERE id=1 ORDER BY id DESC LIMIT 0,10
?>
Nach dem Login kopieren

2. Verwenden Sie die __call-Methode, um Kettenoperationen zu implementieren

__call() wird ausgelöst, wenn das Objekt eine nicht zugängliche Methode aufruft, sodass dynamische Methoden der Klasse erstellt und die Methodenwiederverwendung von PHP realisiert werden können. Ladefunktion, aber es ist tatsächlich ein syntaktischer Zucker (wie auch die __construct()-Methode).

<?php
class String
{
    public $value;

    public function __construct($str=null)
    {
        $this->value = $str;
    }

    public function __call($name, $args)
    {
        $this->value = call_user_func($name, $this->value, $args[0]);
        return $this;
    }

    public function strlen()
    {
        return strlen($this->value);
    }
}
$str = new String(&#39;01389&#39;);
echo $str->trim(&#39;0&#39;)->strlen();
// 输出结果为 4;trim(&#39;0&#39;)后$str为"1389"
?>
Nach dem Login kopieren

Verwandte Empfehlungen:

PHP-Video-Tutorial: https://www.php.cn/course/list/29/type/2.html

Das obige ist der detaillierte Inhalt vonImplementierung des PHP-Kettenbetriebs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:csdn.net
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