Performances PHP: Arguments IF

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

*


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Notify me of followup comments via e-mail. You can also subscribe without commenting.