Pregunta

  

Posible duplicado:
   Referencia: comparando la impresión y el eco de PHP

¿Hay alguna diferencia importante y fundamental entre estas dos funciones en PHP?

¿Fue útil?

Solución

De: http: / /web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40

  1. Velocidad. Hay una diferencia entre los dos, pero en cuanto a velocidad Debería ser irrelevante cuál usas. echo es marginalmente más rápido ya que no establece un valor de retorno si realmente desea bajar a la Nitty arenoso.

  2. Expresión. print () se comporta como una función que puedes hacer: $ ret = print " Hola mundo " ; Y $ ret será 1 . Eso significa que imprimir se puede usar como parte de una expresión más compleja donde el eco no puede. Un Ejemplo del Manual de PHP:

$b ? print "true" : print "false";

la impresión también es parte de la tabla de precedencia que debe ser si debe ser utilizado dentro de una expresión compleja. Está casi al final de la lista de precedencia sin embargo. Sólo ", " Y, O y XOR son más bajos.

  1. Parámetros (s). La gramática es: echo expresión [, expresión [, expresión] ...] Pero echo (expresión, expresión) no es válido. Esto sería válido: echo (" howdy "), (" partner ") ; lo mismo que: echo " howdy ", " socio " ; (Poniendo los corchetes en ese sencillo ejemplo. sirve sin propósito ya que no hay un problema de precedencia del operador con un solo término así.)

Por lo tanto, el eco sin paréntesis puede tomar múltiples parámetros, que se obtienen concatenado:

   echo  "and a ", 1, 2, 3;   // comma-separated without parentheses
   echo ("and a 123");        // just one parameter with parentheses

print () solo puede tomar un parámetro:

   print ("and a 123");
   print  "and a 123";

Otros consejos

Ellos son:

  • imprimir solo toma un parámetro, mientras que el eco puede tener múltiples parámetros.
  • print devuelve un valor (1), por lo que puede usarse como una expresión.
  • echo es un poco más rápido.

Para agregar a las respuestas anteriores, mientras que la impresión solo puede tomar un parámetro, permitirá la concatenación de múltiples valores, es decir:

$count = 5;

print "This is " . $count . " values in " . $count/5 . " parameter";

Esto es 5 valores en 1 parámetro

Creo que print () es más lento que echo .

Me gusta usar print () solo para situaciones como:

 echo 'Doing some stuff... ';
 foo() and print("ok.\n") or print("error: " . getError() . ".\n");

Como sugiere el manual PHP.net, lea esta discusión .

Una diferencia importante es que echo puede tomar múltiples parámetros para la salida. Por ejemplo:

echo 'foo', 'bar';   // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error

Si está buscando evaluar el resultado de una declaración de salida (como se muestra a continuación) use print . Si no, use echo .

$res = print('test');
var_dump($res); //bool(true)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top