Nebenbei: print gibt immer 1 als Wert zurück, echo gibt nichts zurück. Ich denke, das könnte in einigen Fällen nützlich sein.
Bart
Was für ein Fall könnte das sein?
Jayarjo
Ich habe mich das auch gefragt! Gute Frage!
Am
Antworten:
25
echoist nur im akademischen Umfeld schneller. Der Unterschied ist sehr gering. Ein kurzer Benchmark, den ich gerade gemacht habe: Das Abrufen einer Zeile aus einer Tabelle mit mehr als 2000 Knoten dauert 1 Einheit.
Um eine Verbesserung von 1 Einheit zu erzielen, müsste ich ungefähr 3.700.000 (über 3 Millionen) printAussagen durch ersetzen echo. Mit anderen Worten, wenn Sie die Leistung verbessern möchten, ist dies kaum der richtige Ort, um anzufangen.
Wenn man bedenkt, dass printdies in einer viel größeren Bandbreite von Fällen angewendet werden kann echo, hat das erstere einige Vorteile. Sie haben drei Möglichkeiten:
Verwenden Sie immer print
Verwenden Sie echowo möglich und greifen Sie aufprint
Verwenden Sie echoimmer und überarbeiten Sie Ihren Code, wenn er echonicht verwendet werden kann, um ihn zu verwenden
Drupal hat auf dem ersten Standard.
Um Ihre eigentliche Frage zu beantworten, warum dies gewählt wurde: Es war nicht. Es ist einfach so gewachsen.
Können Sie ein Beispiel angeben, wenn das Echo nicht verwendet werden kann? Es ist nur, dass ich mir im Moment keine vorstellen kann.
Jayarjo
6
Das offensichtlichste ist if (! print some_method() ) {print some_other_method()}. Da print ein TRUE zurückgibt, wenn es tatsächlich etwas gedruckt hat. Echo gibt nichts zurück, weshalb es auch schneller ist. Ein weiteres Beispiel, das Sie sehen werden, befindet sich return print $somevalueam Ende einer Methode zum Zurückgeben des Status.
Antworten:
echo
ist nur im akademischen Umfeld schneller. Der Unterschied ist sehr gering. Ein kurzer Benchmark, den ich gerade gemacht habe: Das Abrufen einer Zeile aus einer Tabelle mit mehr als 2000 Knoten dauert 1 Einheit.Um eine Verbesserung von 1 Einheit zu erzielen, müsste ich ungefähr 3.700.000 (über 3 Millionen)
print
Aussagen durch ersetzenecho
. Mit anderen Worten, wenn Sie die Leistung verbessern möchten, ist dies kaum der richtige Ort, um anzufangen.Wenn man bedenkt, dass
print
dies in einer viel größeren Bandbreite von Fällen angewendet werden kannecho
, hat das erstere einige Vorteile. Sie haben drei Möglichkeiten:print
echo
wo möglich und greifen Sie aufprint
echo
immer und überarbeiten Sie Ihren Code, wenn erecho
nicht verwendet werden kann, um ihn zu verwendenDrupal hat auf dem ersten Standard.
Um Ihre eigentliche Frage zu beantworten, warum dies gewählt wurde: Es war nicht. Es ist einfach so gewachsen.
quelle
if (! print some_method() ) {print some_other_method()}
. Da print ein TRUE zurückgibt, wenn es tatsächlich etwas gedruckt hat. Echo gibt nichts zurück, weshalb es auch schneller ist. Ein weiteres Beispiel, das Sie sehen werden, befindet sichreturn print $somevalue
am Ende einer Methode zum Zurückgeben des Status.