Comment implémenter l'appel de chaîne PHP : 1. Utilisez la fonction magique [_call] combinée avec [call_user_func] pour implémenter ; 2. Utilisez la fonction magique [_call] combinée avec [call_user_func_array] pour implémenter ; fonction magique 【_call】à réaliser.
Comment implémenter l'appel de chaîne PHP :
Méthode 1. Utiliser la fonction magique__call
Combiner call_user_func
pour mettre en œuvre l'idée
: définissez d'abord une classe de chaîne StringHelper, le constructeur attribue directement une valeur, puis appelle les fonctions trim()
et strlen()
dans une chaîne, via la fonction magique appelé Utilisez __call()
dans call_user_func
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 8
Méthode 2. .Utilisez la fonction magique__call
Combinée 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();
Description : La fonction
array_unshift(array,value1,value2,value3...)
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.
call_user_func()
et call_user_func_array
sont deux méthodes d'appel dynamique de fonctions. La différence réside dans la manière dont les paramètres sont transmis.
Méthode 3 : N'utilisez pas la fonction magique __call
pour implémenter
Modifiez simplement _call()
en fonction trim()
:
public function trim($t) { $this->value = trim($this->value, $t); return $this; }
pour faciliter l'appel de cette dernière fonction. $this
Recommandations d'apprentissage associées :
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!