Il existe de nombreuses fonctions de chaîne en php. Par exemple, vous devez d'abord filtrer les espaces à la fin de la chaîne, puis trouver sa longueur. La méthode d'écriture générale est :
strlen(trim($str))
Si. vous souhaitez implémenter une chaîne similaire à celle de js. Par exemple, comment dois-je écrire ce qui suit ?
$str->trim()->strlen()
Voici trois façons de l'implémenter :
__call
combinée avec call_user_func
pour implémenter le 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 et gère la relation d'appel en utilisant __call()
dans la fonction magique appelée call_user_func
, 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
__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.
__call
, modifiez simplement _call()
en trim()
fonction :
public function trim($t) { $this->value = trim($this->value, $t); return $this; }
Le point clé est, Renvoie le pointeur $this pour faciliter l’appel de cette dernière fonction.
Il existe de nombreuses fonctions de chaîne en php. Par exemple, vous devez d'abord filtrer les espaces à la fin de la chaîne, puis trouver sa longueur. l'écriture 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 :
__call
combinée avec call_user_func
pour implémenter le 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, et gère la relation d'appel en utilisant __call()
dans la magie appelée fonction call_user_func
, 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
__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.
__call
, modifiez simplement _call()
en trim()
fonction :
public function trim($t) { $this->value = trim($this->value, $t); return $this; }
Le point clé est, Renvoie le pointeur $this pour faciliter l’appel de cette dernière fonction.
Pour plus de trois façons PHP d'implémenter des opérations en chaîne, veuillez faire attention au site Web PHP chinois pour les articles connexes !