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

墨辰丷
墨辰丷original
2018-05-17 11:31:401573parcourir

Cet article présente principalement les trois méthodes de PHP pour implémenter les opérations en chaîne, et analyse les techniques d'implémentation pertinentes et les précautions d'utilisation des opérations en chaîne PHP sous forme d'exemples. Les amis dans le besoin peuvent se référer à

pour plus de détails. Comme suit :

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))


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 d'y parvenir :

Méthode 1. Utiliser la magie La fonction __call est 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, en utilisant call_user_func dans la fonction magique appelée __call() 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();


Terminal Exécuter le script :


php test.php 
8


Méthode 2. Utiliser la fonction magique __call combinée avec call_user_func_array à mettre en œuvre


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

array_unshift (array,value1,value2, value3...)

array_unshift() la fonction 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 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 que le pointeur $this est renvoyé pour faciliter l'appel de cette dernière fonction.


Recommandations associées :

Interroger la chaîne php contenant les données spécifiées

Caractères en PHP trois façons d'exprimer des chaînes

Fonctions de chaîne couramment utilisées en 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!

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