Por qué algunos programas famosos siempre usan la impresión [closed]

5 minutos de lectura

avatar de usuario
zhuanzhou

He leído en alguna parte, no recuerdo dónde ahora, que echo es una forma más eficiente de generar datos que print.

¿Por qué a muchos paquetes y marcos de software famosos, como WordPress y Drupal, les gusta tanto imprimir? ¿Hay alguna razón especial detrás de eso, o solo un hábito?

  • No soy un experto en PHP, así que no sé si este consejo de impresión vs. eco del que estás hablando es de conocimiento común o no, pero me sorprendería si hay mucha diferencia. Donde probablemente encontrará una diferencia es con printf (supongo que PHP admite esta función), porque hace mucho más que una simple impresión, solo debe usarse cuando sea necesario.

    – Endeble

    3 de julio de 2011 a las 2:15

  • Eso es muy interesante. Voto positivo +1.

    –Kevin Wang

    3 de julio de 2011 a las 2:15

  • sí, así es, muy interesante. ¡Vota a favor!

    – corre todos los días

    3 de julio de 2011 a las 2:16

  • No sé por qué esto estaba cerrado pero, aquí. Solía ​​​​usar la impresión cuando comencé, pero luego esto es. La principal diferencia entre los dos: echo ‘uno’, ‘dos’; perfectamente legal; imprime ‘uno’, ‘dos’; arroja un error de análisis. Espero que te ayude.

    – frostymaravilloso

    3 de julio de 2011 a las 4:47

  • Ahora, con lo anterior, notará que las múltiples declaraciones de eco se separan simplemente con una coma, lo que las hace realmente mejores que múltiples llamadas de eco o impresión o incluso la concatenación usando “.”. Luego están las temidas funciones en línea que a su vez imprimen cadenas. P.ej. imprimir ‘línea’.func().’Arriba’; esto hará que la salida de func() aparezca antes que el resto de la declaración. Puede dividir la declaración, pero usar comas con eco le ahorra todo ese dolor de cabeza.

    – frostymaravilloso

    3 de julio de 2011 a las 4:58

En toda la actualidad, Echo e Print difieren en función de cómo están estructurados. Imprimir devuelve un valor muy parecido a lo que haría una función normal. Pero a pesar de la creencia común, Print no es una función, como podemos ver por el hecho de que no requiere paréntesis para funcionar (no debe confundirse con Printf). Print y Echo son en realidad llamados construcciones de lenguaje, aunque esto no quiere decir que no podamos hacer que Print actúe como una función.

Puedes encontrar más referencias aquí:

http://www.learnphponline.com/php-basics/php-echo-vs-print

Aunque no del todo completo. La impresión se puede utilizar como parte de construcciones complejas, como

($b) ? print “True” : print “False”;

mientras que Echo no puede. Además, si desea utilizar la salida de error (@print”Test”;), no puede utilizar echo. De lo contrario, buena información.

  • ¿Por qué esta línea ($b)? imprime “Verdadero” : imprime “Falso”; no se puede usar echo?

    – zhuanzhou

    3 de julio de 2011 a las 3:03

  • @zhua: porque Echo no devuelve un valor, mientras que print sí.

    – Fénix

    3 de julio de 2011 a las 3:06

  • Puedes poner echo a la izquierda y funcionará bien. Por ejemplo,

    echo ($b) ?  "Verdadero": "Falso";
    
     sigue siendo lo mismo.  Pero sí, en ciertas situaciones complejas donde necesitas dos acciones diferentes, no puedes usar echo.g.  Pero sí, en ciertas situaciones complejas donde necesitas dos acciones diferentes, no puedes usar echo.
    

    – frostymaravilloso

    3 de julio de 2011 a las 4:34

avatar de usuario
Jason McCreary

No hay nada en el documentos PHP para apoyar esta afirmación. Sin embargo, una diferencia clave entre los dos es que echo no devuelve un valor y print lo hace. Así que uno podría argumentar que echo es, por lo tanto más eficiente.

Revisar la Punto de referencia de PHP para más información sobre echo contra print y otras comparaciones interesantes.

Al final, esas cosas se reducen a convenciones personales. Cualquiera que sea la eficiencia obtenida del uso echo sobre print es más que probable que sea trivial en relación con otras áreas del código.

  • el valor de retorno es lo que hace la diferencia

    – Itay Moav-Malimovka

    3 de julio de 2011 a las 2:22

  • @Itay, hace la diferencia entre los dos, sí. Hace una diferencia en el rendimiento, no sacaría esa conclusión. Hay un argumento para el almacenamiento de valores devueltos, pilas de marcos, etc. Pero estoy dispuesto a creer que en el caso de PHP, el código subyacente para echo y print es idéntico. Especialmente desde print devuelve 1, siempre

    – Jason McCreary

    3 de julio de 2011 a las 2:32


En las pruebas de rendimiento no he visto diferencia en la velocidad entre print y echo en PHP por lo que son intercambiables. Realmente es preferencia personal. En la naturaleza, he visto que los programadores de PHP se apegan estrictamente a echo y los programadores multilingües (si esa es una frase) usan cualquiera.

Porque lees esas cosas en blogs a los que les gusta hablar de microoptimizaciones. Debe evitar la optimización prematura a toda costa porque no vale la pena el esfuerzo => Debería buscar en Google una cita famosa de http://en.wikipedia.org/wiki/Tony_Hoare. Solo debe abordar su fruta al alcance de la mano cuando tenga problemas de rendimiento y dejar de perder el tiempo leyendo blogs como ese. El creador de PHP hizo un par de presentaciones sobre cómo hacerlo =>
http://www.archive.org/details/simple_is_hard

Por ahora es un video bastante viejo, pero sigue siendo muy bueno si me preguntas.

¿Ha sido útil esta solución?