Quelles sont les méthodes de mise en œuvre du fonctionnement de la chaîne PHP ?

青灯夜游
Libérer: 2023-03-10 07:20:01
original
2362 Les gens l'ont consulté

Comment implémenter le fonctionnement en chaîne en 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 à implémenter.

Quelles sont les méthodes de mise en œuvre du fonctionnement de la chaîne PHP ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3

Il existe de nombreuses chaînes dans php Fonction, par exemple, vous souhaitez 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))
Copier après la connexion

Si vous souhaitez implémenter une opération en chaîne similaire à. qu'en js, par exemple, comment devriez-vous l'é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

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

array_unshift() la fonction 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.

Méthode 3 : Au lieu d'utiliser la fonction magique __call, utilisez la fonction trim() pour implémenter

Modifiez simplement _call() en fonction trim() :

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

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

Apprentissage 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:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!