Les trois méthodes d'opérations en chaîne utilisant PHP consistent à utiliser l'appel magique fonction combiné avec call_user_func, à utiliser l'appel de fonction magique combiné avec call_user_func_array, et sans utiliser l'appel de fonction magique.
Il existe de nombreuses chaînefonctions en php. Par exemple, vous devez d'abord filtrer les espaces à la fin d'une chaîne, puis trouver sa longueur. la manière générale d'écrire est :
strlen(trim($str))
Si vous souhaitez implémenter une opération en chaîne similaire à celle de js, par exemple, comment devez-vous l'écrire comme suit ?
$str->trim()->strlen()
Voici trois façons de l'implémenter :
Méthode 1. Utilisez l'appel de fonction magique combiné avec call_user_func pour implémenter
Idée : définissez d'abord une classe de chaîne StringHelper, constructeur attribuez directement une valeur, puis appelez les fonctions trim() et strlen() dans une chaîne, via l'appel de fonction magique ( ) pour gérer la relation d'appel, l'implémentation est la suivante :
<?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('0')->strlen();
Script d'exécution du terminal :
php test.php
Méthode 2 : Utilisez l'appel de fonction magique combiné avec call_user_func_array pour implémenter
<?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('0')->strlen();
,value2,value3...)
La fonction array_unshift() est utilisée pour insérer de nouveaux éléments dans le tableau. Les valeurs du nouveau tableau seront insérées au début du tableau.
Le point clé est de retourner $this pointeur pour faciliter l’appel de cette dernière fonction.
Troisième méthode, n'utilisez pas l'appel de fonction magique pour obtenir
Modifiez simplement _call() en fonction trim() :
public function trim($t) { $this->value = trim($this->value, $t); return $this; }
Le point clé est de retourner $this pointeur pour faciliter l’appel de cette dernière fonction.
Je pense que vous maîtrisez les méthodes après avoir lu ces cas. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !public function trim($t) { $this->value = trim($this->value, $t); return $this; }
Lecture connexe :
Comment PHP résout le problème du trafic important sur les sites Web et de la concurrence élevée
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!