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

php中世界最好的语言
Libérer: 2023-03-18 07:54:01
original
1640 Les gens l'ont consulté

Les trois méthodes d'opérations en chaîne utilisant PHP consistent à utiliser l'appel magique fonction combiné avec call_user_func, à utiliser l'appel de fonction magique combiné avec call_user_func_array, et sans utiliser l'appel de fonction magique.

Il existe de nombreuses chaînefonctions en php. Par exemple, vous devez 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 à celle de js, par exemple, comment devez-vous l'écrire comme suit ?

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


Voici trois façons de l'implémenter :

Méthode 1. Utilisez l'appel de fonction magique combiné avec call_user_func pour implémenter

Idée : définissez d'abord une classe de chaîne StringHelper, constructeur attribuez directement une valeur, puis appelez les fonctions trim() et strlen() dans une chaîne, via l'appel de fonction magique ( ) 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();
Copier après la connexion


Script d'exécution du terminal :

php test.php
Copier après la connexion


Méthode 2 : Utilisez l'appel de fonction magique combiné 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

,value2,value3...)

La fonction 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.

Troisième méthode, n'utilisez pas l'appel de fonction magique pour obtenir

Modifiez simplement _call() en fonction trim() :

Le point clé est de retourner $this pointeur pour faciliter l’appel de cette dernière fonction.

Troisième méthode, n'utilisez pas l'appel de fonction magique 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
Copier après la connexion

Le point clé est de retourner $this pointeur pour faciliter l’appel de cette dernière fonction.

Je pense que vous maîtrisez les méthodes après avoir lu ces cas. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
public function trim($t)
{
  $this->value = trim($this->value, $t);
  return $this;
}
Copier après la connexion
Copier après la connexion

Lecture connexe :


Comment PHP résout le problème du trafic important sur les sites Web et de la concurrence élevée

La fonction personnalisée php génère des cartésiens Méthode du produit


Mise en œuvre du timing de vente flash de produits PHP (résoudre une solution à trafic important)

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:
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!