Maison  >  Article  >  développement back-end  >  Un moyen plus efficace de déterminer la longueur d'une chaîne php

Un moyen plus efficace de déterminer la longueur d'une chaîne php

怪我咯
怪我咯original
2017-07-04 11:51:182067parcourir

En PHP, lorsque nous devons déterminer la longueur d'une chaîne, la première chose à laquelle nous pensons est la fonction strlen() Oui, strlen() renvoie C'est la longueur de la chaîne, il n'y a donc aucun problème à l'utiliser de cette façon. Cependant, du point de vue de l'optimisation du programme PHP, utiliser strlen() pour déterminer la longueur d'une chaîne est probablement la meilleure façon de l'écrire.

Des programmeurs expérimentés ont découvert que lorsque PHP détermine la longueur d'une chaîne, utilisez isset() Il est plus rapide que strlen() et a une efficacité d'exécution plus élevée.
C'est à dire :

Le code est le suivant :

$str = ‘aaaaaa';
if(strlen($str) > 6)
VS
if(!isset($str{6})


Après un test simple avec un exemple, la situation est fondamentalement vrai, et l'efficacité de isset() est presque 3 fois supérieure à celle de strlen().
Exemple :

Le code est le suivant :

<?php
 //使用strlen方式
 $arr = "123456";
 $sTime = 
microtime
(1);
 if(strlen($arr) > 6){
 // echo 1;
 }
 echo microtime(1) -  $sTime;

Sortie : 0.00035595893859863

Le code est le suivant :

<?php
//使用isset($arr{})方式
 $arr = "123456";
 $sTime = microtime(1);
 if(!isset($arr{6})){
 // echo "1\r\n";
 }
 echo microtime(1) - $sTime;

Sortie : 0.00019097328186035

Pourquoi isset() est plus rapide que strlen()
strlen() La fonction s'exécute assez rapidement car elle n'effectue aucun calcul et renvoie simplement la longueur de chaîne connue stockée dans la structure zval (la structure de données intégrée de C utilisée pour stocker les variables PHP). Cependant, puisque strlen() est une fonction, elle sera quelque peu lente, car l'appel de fonction passera par de nombreuses étapes, telles que les lettres minuscules (Annotation : fait référence au nom de la fonction en minuscule, PHP ne fait pas de distinction entre les noms de fonction en majuscules et en minuscules. ), recherche de hachage, Sera exécuté avec la fonction appelée.
Dans certains cas, l'utilisation de l'astuce isset() peut accélérer l'exécution de votre code. Parce que isset() est une construction de langage, cela signifie que son exécution ne nécessite pas de recherche de fonction ni de lettre minuscule. Autrement dit, vous ne dépensez pas beaucoup de temps système dans le code de niveau supérieur pour vérifier la longueur de la chaîne.

Donc, appeler isset() est plus rapide que strlen().

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