¿Por qué Core usa print en lugar de echo?


24

He leído en alguna parte, y no recuerdo dónde, esa echoes una forma más eficiente de generar datos entonces print.

¿Por qué Drupal Core usa printtanto? ¿Hay alguna razón especial detrás de eso?


1
En una nota al margen: print siempre devolverá 1 como valor, echo no devolverá nada. Supongo que eso puede ser útil en algunos casos.
Bart

¿Qué tipo de caso podría ser?
jayarjo

¡Me lo he preguntado también! ¡Buena pregunta!
aendrew

Respuestas:


25

echoes solo más rápido en entornos académicos. La diferencia es muy marginal. Un punto de referencia rápido que acabo de hacer: el tiempo de recuperación de una fila de una tabla con más de 2000 nodos es de 1 unidad.

Para obtener una mejora de 1 unidad, necesitaría reemplazar alrededor de 3.700.000 (más de 3 millones) de printdeclaraciones con echo. En otras palabras, si desea mejoras de rendimiento, este no es el lugar para comenzar.

Visto que printse puede usar en una gama mucho más amplia de casos echo, el primero tiene algunas ventajas. Te deja tres opciones:

  • Siempre usa print
  • Usar echosiempre que sea posible y recurrir aprint
  • Use echosiempre y refactorice su código si echono puede usarse, para usarlo

Drupal ha incumplido el primero.

Para responder a su pregunta real de por qué se eligió esto: no fue así. Simplemente creció de esta manera.


¿Podría dar un ejemplo de cuándo no se puede usar echo? Es que no puedo imaginar ninguna en este momento.
jayarjo

66
Lo más obvio es if (! print some_method() ) {print some_other_method()}. Dado que print devuelve un TRUE si realmente imprimió algo. Echo no devuelve nada, por eso también es más rápido. Otro ejemplo que verá es return print $somevalueal final de un método para devolver el estado.
Berkes
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.