Na marginesie: print zawsze zwraca 1 jako wartość, echo nic nie zwraca. Myślę, że może to być przydatne w niektórych przypadkach.
Bart
Co to może być za przypadek?
jayarjo
Też się zastanawiałem! Dobre pytanie!
aendrew
Odpowiedzi:
25
echojest tylko szybszy w środowiskach akademickich. Różnica jest bardzo marginalna. Szybki test porównawczy, który właśnie zrobiłem: czas pobierania jednego wiersza z tabeli zawierającej więcej niż 2000 węzłów wynosi 1 jednostkę.
Aby uzyskać poprawę o 1 jednostkę, musiałbym zastąpić około 3.700.000 (ponad 3 miliony) printwyciągów echo. Innymi słowy, jeśli chcesz poprawić wydajność, nie jest to dobre miejsce na rozpoczęcie.
Pierwszy z nich ma pewne zalety, ponieważ printmożna go stosować w znacznie szerszym zakresie przypadków echo. Pozostawia ci trzy opcje:
Zawsze używaj print
Użyj, o echoile to możliwe, i włącz rezerwęprint
Użyj echozawsze i popraw kod, jeśli echonie można go użyć, aby go użyć
Drupal domyślnie działa na pierwszym.
Aby odpowiedzieć na twoje aktualne pytanie, dlaczego wybrano to: Nie było. Po prostu urósł w ten sposób.
Czy możesz podać przykład, kiedy echo nie może być użyte? Po prostu nie mogę sobie teraz wyobrazić.
jayarjo
6
Najbardziej oczywiste jest if (! print some_method() ) {print some_other_method()}. Ponieważ print zwraca PRAWDA, jeśli faktycznie coś wydrukowało. Echo nic nie zwraca, dlatego też jest szybsze. Innym przykładem, który zobaczysz, jest return print $somevaluekoniec metody zwracania statusu.
Odpowiedzi:
echo
jest tylko szybszy w środowiskach akademickich. Różnica jest bardzo marginalna. Szybki test porównawczy, który właśnie zrobiłem: czas pobierania jednego wiersza z tabeli zawierającej więcej niż 2000 węzłów wynosi 1 jednostkę.Aby uzyskać poprawę o 1 jednostkę, musiałbym zastąpić około 3.700.000 (ponad 3 miliony)
print
wyciągówecho
. Innymi słowy, jeśli chcesz poprawić wydajność, nie jest to dobre miejsce na rozpoczęcie.Pierwszy z nich ma pewne zalety, ponieważ
print
można go stosować w znacznie szerszym zakresie przypadkówecho
. Pozostawia ci trzy opcje:print
echo
ile to możliwe, i włącz rezerwęprint
echo
zawsze i popraw kod, jeśliecho
nie można go użyć, aby go użyćDrupal domyślnie działa na pierwszym.
Aby odpowiedzieć na twoje aktualne pytanie, dlaczego wybrano to: Nie było. Po prostu urósł w ten sposób.
źródło
if (! print some_method() ) {print some_other_method()}
. Ponieważ print zwraca PRAWDA, jeśli faktycznie coś wydrukowało. Echo nic nie zwraca, dlatego też jest szybsze. Innym przykładem, który zobaczysz, jestreturn print $somevalue
koniec metody zwracania statusu.