Чому ядро ​​використовує друк, а не відлуння?


24

Я десь читав, і не пам'ятаю де, echoце тоді більш ефективний спосіб виведення даних print.

Чому printтак часто використовується Drupal core ? Чи є якась особлива причина цього?


1
На стороні: друк завжди поверне 1 як значення, ехо нічого не поверне. Я думаю, що це може бути корисно в деяких випадках.
Барт

Що це за випадок?
jayarjo

Я теж це задумався! Гарне питання!
aendrew

Відповіді:


25

echoтільки швидше в академічному середовищі. Різниця дуже незначна. Швидкий орієнтир, який я щойно зробив: час отримання одного рядка з таблиці з більш ніж 2000 вузлами - 1 одиниця.

Щоб покращити 1 одиницю, мені потрібно було б замінити близько 3 700 000 (понад 3 мільйони) printзаяв на echo. Іншими словами, якщо ви хочете покращити ефективність роботи, це навряд чи варто починати.

Побачене, яке printможе бути використане в набагато ширшому діапазоні випадків echo, перший має деякі переваги. Це залишає вам три варіанти:

  • Завжди використовуйте print
  • Використовуйте echoтам, де це можливо, і резервнийprint
  • Використовуйте echoзавжди та рефакторируйте свій код, якщо echoйого не можна використовувати, щоб використовувати його

Друпаль дефолтував на першому.

Щоб відповісти на власне запитання щодо того, чому це було обрано: Це не було. Він просто рос таким чином.


Чи можете ви навести приклад того, коли ехо не можна використовувати? Це я просто не можу уявити на даний момент.
jayarjo

6
Найбільш очевидним є if (! print some_method() ) {print some_other_method()}. Оскільки друк повертає ПРАВИЛЬНИЙ, якщо він фактично щось надрукував. Ехо нічого не повертає, через що і швидше. Ще один приклад ви побачите return print $somevalueв кінці методу повернення статусу.
berkes
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.