Sur un sidenote: print renverra toujours 1 comme valeur, echo ne renverra rien. Je suppose que cela pourrait être utile dans certains cas.
Bart
Quel genre de cas cela pourrait être?
jayarjo
Je me le demande aussi! Bonne question!
aendrew
Réponses:
25
echoest seulement plus rapide dans les environnements académiques. La différence est très marginale. Un benchmark rapide que je viens de faire: Le temps de récupération d'une ligne d'une table avec plus de 2000 nœuds est de 1 unité.
Afin d'obtenir une amélioration de 1 unité, je devrais remplacer environ 3.700.000 (plus de 3 millions) de printdéclarations par echo. En d'autres termes, si vous souhaitez améliorer les performances, ce n'est pas le bon point de départ.
Vu que cela printpeut être utilisé dans un éventail beaucoup plus large de cas echo, le premier présente certains avantages. Il vous laisse trois options:
Toujours utiliser print
Utiliser echosi possible et se replierprint
Utilisez echotoujours et refactorisez votre code s'il echone peut pas être utilisé, pour l'utiliser
Drupal a par défaut le premier.
Pour répondre à votre question réelle sur la raison pour laquelle cela a été choisi: Ce n'était pas le cas. Il a simplement grandi de cette façon.
Pourriez-vous fournir un exemple de cas où l'écho ne peut pas être utilisé? C'est juste que je ne peux pas en imaginer pour le moment.
jayarjo
6
Le plus évident est if (! print some_method() ) {print some_other_method()}. Puisque print retourne TRUE s'il a réellement imprimé quelque chose. Echo ne renvoie rien, c'est pourquoi il est aussi plus rapide. Un autre exemple que vous verrez est return print $somevalueà la fin d'une méthode pour renvoyer le statut.
Réponses:
echo
est seulement plus rapide dans les environnements académiques. La différence est très marginale. Un benchmark rapide que je viens de faire: Le temps de récupération d'une ligne d'une table avec plus de 2000 nœuds est de 1 unité.Afin d'obtenir une amélioration de 1 unité, je devrais remplacer environ 3.700.000 (plus de 3 millions) de
print
déclarations parecho
. En d'autres termes, si vous souhaitez améliorer les performances, ce n'est pas le bon point de départ.Vu que cela
print
peut être utilisé dans un éventail beaucoup plus large de casecho
, le premier présente certains avantages. Il vous laisse trois options:print
echo
si possible et se replierprint
echo
toujours et refactorisez votre code s'ilecho
ne peut pas être utilisé, pour l'utiliserDrupal a par défaut le premier.
Pour répondre à votre question réelle sur la raison pour laquelle cela a été choisi: Ce n'était pas le cas. Il a simplement grandi de cette façon.
la source
if (! print some_method() ) {print some_other_method()}
. Puisque print retourne TRUE s'il a réellement imprimé quelque chose. Echo ne renvoie rien, c'est pourquoi il est aussi plus rapide. Un autre exemple que vous verrez estreturn print $somevalue
à la fin d'une méthode pour renvoyer le statut.