En PHP la commande echo est une instruction du langage et pas une fonction, et elle permet d'écrire par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?php
$name = 'Olivier';
 
echo 'Bonjour ', $name, '
';
 
?>
ce qui donne le même résultat que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?php
$name = 'Olivier';
 
echo 'Bonjour '.$name.'
';
 
?>
J'ai toujours (enfin toujours, mes débuts en PHP date de cet été) privilégié la première manière car elle me semblait plus performante. Mon résonnement était qu'un echo $a.$b.$c.$d; passait par les étapes suivantes :
1. concaténation de $a et $b
2. concaténation de ce résultat avec $c
3. concaténation de ce résultat avec $d
4. passage de ce résultat à echo qui l'affiche.

Alors que echo $a, $b, $c, $d; passait tous les paramètres à echo qui avait en charge de faire le boulot. Mais un boulot qui se passe au niveau de l'implémentation de la commande echo et non plus au niveau de l'exécution du code PHP.


Je me suis décidé à faire un test de vitesse avec ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php echo 'Start
';
 
$a = 'un pour commencer';
$b = 'deux pour poursuivre';
$c = 'trois plus long pour avoir un peu de texte quand même';
$d = 'quatre encore un peu';
$e = 'cinq on finit';
 
for ($i=0; $i<100000; $i++) {
  echo $a.$i.$b.$i.$c.$i.$d.$i.$e.$i."\n";
#  echo $a, $i, $b, $i, $c, $i, $d, $i, $e, $i, "\n";
}
 
echo 'End
';
 
?>
Et à ma plus grande surprise, voici les résultats obtenu sur ma machine :
~0.8s pour la version avec les . : concaténation
~4.6s pour la version avec les , : plusieurs paramètres

Pourquoi cette différence en défaveur de ce qui selon moi devrait être le plus rapide ?

J'ai effectué ce test avec PHP 5.3.1 d'une installation XAMPP, sous Windows 7.