echo VS print
Une interrogation qui revient souvent parmis les développeurs est : "Qui est plus rapide entre echo et print() ?"
Avant tout.
Apache, php et MySQL sont installés et administrés grâce à Wamp5
Les Benchmarks
-
Pour echo :
<?php
echo 'Hello World !';
?> -
Pour print() :
<?php
print('Hello World !');
?>
Le code de benchmark.php
Le code utilisé pour effectuer le Benchmark + des explications :
<?php |
Etant donné que les fonctions d'affichage sont peu gourmandes en ressource, nous allons les répéter 1000 fois :
<?php |
Voilà, la même chose a été faite avec print()
Résultats
- Pour echo :
time index ex time % Start 1112804730.84137200 - 0.00% Stop 1112804730.95533600 0.113964 100.00% total - 0.113964 100.00% - Pour print() :
time index ex time % Start 1112804933.78300200 - 0.00% Stop 1112804933.89791900 0.114917 100.00% total - 0.114917 100.00%
Conclusion
Maintenant que les Benchmarks sont analysés, nous pouvons tirer une conclusion que personne ne contestera : echo et print() s'équivalent au niveau des performances donc inutile de faire un rechercher/remplacer massif dans votre site...
Mais ?
Effectivement, je ne pouvais pas m'arrêter là, echo et print() ont des synthaxes fort différentes :
void echo ( string arg1 [, string ...] )
int print ( string arg )
Voilà ce que nous apprend la documentation de php sur les synthaxes de ces fonctions.
En clair, celà signifie que echo peut recevoir un nombre illimité de paramètres contrairement à print, ce qui fait que pour afficher une chaîne avec print, imaginons que vous devez afficher les variables (int) v1, (string) v2,(float) v3, vous serez obligé de procéder de cette manière :
<?php |
Alors qu'avec echo, vous auriez pu procéder exactement de la même manière ou plutôt utiliser la méthode suivante :
<?php |
Ça ne change rien, dites-vous ? Pas si sûr, retournons à nos Benchmarks :
Premier cas avec print :
time index | ex time | % | |
Start | 1112812361.06881700 | - | 0.00% |
Stop | 1112812361.57465600 | 0.505839 | 100.00% |
total | - | 0.505839 | 100.00% |
Deuxième cas avec echo et l'envoi de plusieurs paramètres :
time index | ex time | % | |
Start | 1112812444.41048400 | - | 0.00% |
Stop | 1112812444.71723000 | 0.306746 | 100.00% |
total | - | 0.306746 | 100.00% |
Ici, il est clair que la deuxième méthode s'avère être la meilleure ! Cette différence est dûe au fait que dans le premier cas, le moteur de php doit convertir toute la chaîne concaténée en string alors que dans le deuxième cas, aucune convertion de type n'est effectuée, d'où le score de echo.
Le mot de la fin
Voila ce qui clôturera cet article sur la différence de performances entre echo et print.
Pour ma part, je n'utilise que echo et j'ai toujours programmé avec echo même sans savoir les avantages qu'il procurait.
J'espère que cet article vous aura éclairé et qu'il vous aidera dans votre programmation !