Maison  >  Article  >  développement back-end  >  Comment implémenter l'appel de chaîne PHP ?

Comment implémenter l'appel de chaîne PHP ?

coldplay.xixi
coldplay.xixioriginal
2020-06-30 15:49:203196parcourir

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 ?

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(&#39;0&#39;)->strlen();

Script d'exécution du terminal :

php test.php 
8

Méthode 2. .Utilisez la fonction magique__callCombiné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();

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;
}

Le point clé est de renvoyer le pointeur

pour faciliter l'appel de cette dernière fonction. $this

Recommandations d'apprentissage associées :

Programmation PHP de l'entrée à la maîtrise

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!

Déclaration:
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
Article précédent:qu'est-ce que php mvcArticle suivant:qu'est-ce que php mvc