Maison > développement back-end > tutoriel php > Trois façons d'implémenter des opérations en chaîne en PHP

Trois façons d'implémenter des opérations en chaîne en PHP

藏色散人
Libérer: 2023-04-07 13:12:02
avant
3137 Les gens l'ont consulté

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 manière générale d'écrire est :

strlen(trim($str))
Copier après la connexion

Si vous. souhaitez implémenter une opération en chaîne similaire à celle de js , par exemple, comment dois-je écrire comme suit ?

$str->trim()->strlen()
Copier après la connexion

Les éléments suivants sont implémentés de trois manières :

Méthode 1. Utilisez la fonction magique __call combinée avec call_user_func pour implémenter

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. La relation d'appel est gérée en utilisant call_user_func dans la fonction magique appelée __call().

<?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(&#39;0&#39;)->strlen();
Copier après la connexion

Script d'exécution du terminal :

php test.php 
8
Copier après la connexion

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(&#39;0&#39;)->strlen();
Copier après la connexion

Instructions :

array_unshift(array,value1,value2,value3...)
Copier après la connexion

La fonction array_unshift() est utilisée pour insérer de nouveaux éléments dans un 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.

Troisième méthode, n'utilisez pas la fonction magique __call pour obtenir

Modifiez simplement _call() en fonction trim() :

public function trim($t)
{
    $this->value = trim($this->value, $t);
    return $this;
}
Copier après la connexion

La clé Le but est de renvoyer le pointeur $this pour faciliter l’appel de cette dernière fonction.

Recommandé : "Tutoriel vidéo PHP"

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:segmentfault.com
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