PHP : Accès aux variables non déclarées

Quand on accède à des variables non déclarées, cela a un coût en terme de performance. En effet, PHP tente de la trouver, constate qu’il n’y arrive pas et lève une erreur de type E_WARNING, et ce même si vous ne les affichez pas. Démonstration.

Exécutons 100 000 fois le code de référence, la variable $variable n’étant pas déclarée :

if ($variable=='test')
  { }

Cela prend en moyenne 180ms.

Voyons le code, amélioré :

if (isset($variable) && $variable=='test')
  { }

100 000 exécutions prennent alors en moyenne 42ms, soit une amélioration de 75% en terme de rapidité d’exécution.

Ce test donne les même résultats que ce soit une variable ($test), un élément de tableau ($test['test']) ou autre.

PHP est souple au niveau des variables (déclaration, typage), l’avantage en terme de programmation a un coût en terme de performances.

Si vous voulez améliorer celles de votre app, laissez s’afficher les erreurs E_WARNING : en effet ce n’est pas parce qu’elles ne sont pas affichées par votre configuration de PHP qu’elles ne sont pas présentes. PHP lèvent ces erreurs quoiqu’il arrive, donc mieux vaut les voir et les éradiquer.

Déclarez explicitement vos variables, ou testez en premier leur existance via isset() avant d’y accéder.

Crédit photo : DragonBe.

À propos de Maxime Garcia

Jeune entrepreneur passionné du Web. Président de MAX Business, éditeur de solution de gestion pour entreprises.
Cette entrée a été publiée dans Programmation, avec comme mot(s)-clef(s) , . Vous pouvez la mettre en favoris avec ce permalien.

Les commentaires sont fermés.