Je fait ce petit article très court pour vous aider à optimiser (légerement peut-être mais bon…) vos arguments de conditions. Je vais parler ici du cas d’un IF valable si un ou plusieurs arguments parmis tous sont à “true” :
< ?php if ($arg1 || arg2 || arg3()) { echo 'OK'; } ?>
Ce script va donc afficher “OK” si la variables $arg1 == true OU si la constante arg2 == true OU si la fonction arg3 renvoi “true”.
Si $arg1 == true, PHP va directement s’arrêter de vérifier les conditions et va exécuter ce qu’il y a dans le IF.
Sinon, si arg2 == true, PHP va directement s’arrêter de vérifier les conditions et va exécuter ce qu’il y a dans le IF.
Sinon, si arg3() == true, PHP va directement s’arrêter de vérifier les conditions et va exécuter ce qu’il y a dans le IF.
etc…
En effet, il faut donc :
- Mettre en priorité les fonctions rapides
- Mettre en priorité les fonctions les plus appelées dans le cas d’une REGEX par exemple
Prenons le cas d’une suite de REGEX. Si $var est à 70% égale à ‘monblabla’, à 20% égale à ‘la vie est belle’ et à 10% égale à ‘une autre phrase’, cet IF est optimisé (l’ordre des arguments) :
< ?php if (preg_match('#bla#', $var) || preg_match('#belle#', $var) || preg_match('#autre#', $var)) { echo 'OK'; } ?>
Peut-être cela répondra à des questions de certains.