Maison > développement back-end > tutoriel php > Implémentation du fonctionnement de la chaîne php

Implémentation du fonctionnement de la chaîne php

Libérer: 2023-04-08 13:22:01
avant
3119 Les gens l'ont consulté

Implémentation du fonctionnement de la chaîne php

La clé du fonctionnement en chaîne PHP est de renvoyer $this après avoir terminé l'opération

1. Implémentez le fonctionnement en chaîne sans utiliser la méthode __call

<?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
?>
Copier après la connexion

. 2. Utilisez la méthode __call pour implémenter les opérations en chaîne

__call() sera déclenché lorsque l'objet appelle une méthode inaccessible, afin qu'il puisse réaliser la création de méthodes dynamiques de la classe et réaliser la réutilisation des méthodes de PHP. fonction de chargement, mais il s'agit en fait d'un sucre syntaxique (tout comme la méthode __construct()).

<?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"
?>
Copier après la connexion

Recommandations associées :

Tutoriel vidéo PHP : https://www.php.cn/course/list/29/type/2.html

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal