Modérateur PHPfrance |
10684 Messages
15 oct. 2011, 10:17
En l'occurrence, si ta variable ne contient qu'un nombre, les opérateurs booléen seront plus efficace, mais surtout plus facile à lire et à maintenir. En lisant le code :
if ( $i >=1 && $i <= 10 )
tu comprend facilement que le if test si $i est compris entre 1 et 10 inclus (Nota, c'est un ET qu'il te faut si tu veux que la valeur soit à la fois supérieure à 0 et inférieure à 11).
Alors que tu vas passer un certain temps à essayer de décrypter ce que cette condition va faire :
if (preg_match("#^([1-9]|10)$#",$i))
Et par ailleurs, même si cela se chiffre en millième de secondes, php ira plus vite a tester deux opérateurs sur des primitives qu'à appliquer une expression régulière sur une chaine de caractères
(d'ailleurs, si $i est un nombre, il ne faut pas mettre de guillemets autour quand tu déclares sa valeur : 11 est le chiffre, "11" est la chaine. PHP fera tout seul la conversion si cela s'avère nécessaire, mais c'est pas la peine de lui donner du travail supplémentaire

)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...