Heim > Artikel > Backend-Entwicklung > 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='1=1') { $this->sql["where"]="WHERE ".$_where; return $this; } public function order($_order='id DESC') { $this->sql["order"]="ORDER BY ".$_order; return $this; } public function limit($_limit='30') { $this->sql["limit"]="LIMIT 0,".$_limit; return $this; } public function select($_select='*') { 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 ?>
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('01389'); echo $str->trim('0')->strlen(); // 输出结果为 4;trim('0')后$str为"1389" ?>
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!