¿Cuál es la diferencia entre echo, print y print_r en PHP?

10 minutos de lectura

¿Cual es la diferencia entre echo print y print r en
mak

yo suelo echo y print_r mucho, y casi nunca uso print.

siento echo es una macro y print_r es un alias de var_dump.

Pero esa no es la forma estándar de explicar las diferencias.

  • print_r no es exactamente un alias de var_dump: genera un formato diferente. En particular, la salida de var_dump también incluye el “tipo” de cada variable.

    – thomasrutter

    7 de enero de 2013 a las 1:30

  • Referencia: Comparando la impresión y el eco de PHP

    – usuario

    11 de julio de 2014 a las 1:11

  • Otro detalle a agregar y que puede ser útil, es que var_dump trunca textos muy largos, mostrando… e indicando la longitud restante, por ejemplo: even ‘… (longitud = 4482) Si usas echo esto no sucede.

    – Jordan

    15 de enero de 2019 a las 22:52

¿Cual es la diferencia entre echo print y print r en
Juan Kugelman

print y echo son más o menos iguales; ambos son construcciones de lenguaje que muestran cadenas. Las diferencias son sutiles: print tiene un valor de retorno de 1 por lo que se puede utilizar en expresiones mientras que echo tiene un void tipo de retorno; echo puede tomar múltiples parámetros, aunque tal uso es raro; echo es un poco más rápido que print. (Personalmente, siempre uso echoNunca print.)

var_dump imprime un volcado detallado de una variable, incluido su tipo y el tipo de cualquier subelemento (si es una matriz o un objeto). print_r imprime una variable en una forma más legible por humanos: las cadenas no se citan, la información de tipo se omite, los tamaños de matriz no se proporcionan, etc.

var_dump suele ser más útil que print_r al depurar, en mi experiencia. Es particularmente útil cuando no sabe exactamente qué valores/tipos tiene en sus variables. Considere este programa de prueba:

$values = array(0, 0.0, false, '');

var_dump($values);
print_r ($values);

Con print_r no puedes notar la diferencia entre 0 y 0.0o false y '':

array(4) {
  [0]=>
  int(0)
  [1]=>
  float(0)
  [2]=>
  bool(false)
  [3]=>
  string(0) ""
}

Array
(
    [0] => 0
    [1] => 0
    [2] => 
    [3] => 
)

1646966171 129 ¿Cual es la diferencia entre echo print y print r en
thomasrutter

eco

  • Produce una o más cadenas separadas por comas
  • Sin valor de retorno

    p.ej echo "String 1", "String 2"

imprimir

  • Emite solo una sola cadena
  • Devoluciones 1por lo que se puede utilizar en una expresión

    p.ej print "Hello"

    o, if ($expr && print "foo")

imprimir_r()

  • Produce una representación legible por humanos de cualquier una valor
  • Acepta no solo cadenas, sino también otros tipos, incluidos arreglos y objetos, y los formatea para que sean legibles.
  • Útil al depurar
  • Puede devolver su salida como un valor de retorno (en lugar de hacer eco) si se proporciona el segundo argumento opcional

var_dump()

  • Produce una representación legible por humanos de uno o mas valores separados por comas
  • Acepta no solo cadenas, sino también otros tipos, incluidos arreglos y objetos, y los formatea para que sean legibles.
  • Utiliza un formato de salida diferente para print_r()por ejemplo, también imprime el escribe de valores
  • Útil al depurar
  • Sin valor de retorno

var_export()

  • Produce un mensaje legible por humanos y PHP-ejecutable representación de cualquier una valor
  • Acepta no solo cadenas, sino también otros tipos, incluidos arreglos y objetos, y los formatea para que sean legibles.
  • Utiliza un formato de salida diferente para ambos print_r() y var_dump() – ¡La salida resultante es un código PHP válido!
  • Útil al depurar
  • Puede devolver su salida como un valor de retorno (en lugar de hacer eco) si se proporciona el segundo argumento opcional

Notas:

  • Aunque print se puede usar en una expresión, recomiendo a las personas que eviten hacerlo, porque es malo para la legibilidad del código (y porque es poco probable que alguna vez sea útil). Las reglas de precedencia cuando interactúa con otros operadores también pueden ser confusas. Debido a esto, personalmente nunca tengo una razón para usarlo más echo.
  • Mientras que echo y print son construcciones del lenguaje, print_r() y var_dump()/var_export() son funciones regulares. No necesita paréntesis para encerrar los argumentos a echo o print (y si los usa, se tratarán como lo harían en una expresión).
  • Tiempo var_export() devuelve un código PHP válido que permite que los valores se vuelvan a leer más tarde; confiar en esto para el código de producción puede facilitar la introducción de vulnerabilidades de seguridad debido a la necesidad de usar eval(). Sería mejor usar un formato como JSON para almacenar y leer valores. La velocidad será comparable.

  • Solo una nota rápida sobre cuándo querrías el echo $a, $b; sintaxis cuando puedes simplemente hacer echo $a . $b;: si $a o $b son cadenas realmente grandes, esta última usará memoria adicional y tiempo para crear una versión concatenada separada de las cadenas en la memoria antes de que pueda comenzar a enviarlas al navegador.

    – thomasrutter

    24 de enero de 2014 a las 6:57


  • Por supuesto, podrías usar echo $a; echo $b; también.

    – thomasrutter

    26 de junio de 2014 a las 5:00

¿Cual es la diferencia entre echo print y print r en
Alex

Solo para agregar a la respuesta de John, echo debe ser el único que utilice para imprimir contenido en la página.

print es un poco más lento. var_dump() y print_r() solo debe usarse para depurar.

También vale la pena mencionar que print_r() y var_dump() hará eco de forma predeterminada, agregue un segundo argumento a print_r() al menos eso se evalúa como verdadero para que regrese, por ejemplo print_r($array, TRUE).

La diferencia entre hacer eco y devolver son:

  • echo: imprimirá inmediatamente el valor en la salida.
  • return: devolverá la salida de la función como una cadena. Útil para registro, etc.

  • Solo porque planteaste el problema, ¿cuál es la diferencia entre echoing y return¿En g?

    –David Tomás

    30 de octubre de 2009 a las 0:31

  • wow, desearía saber sobre el parámetro de retorno 🙁 básicamente puedes hacer $foo = print_r($array, true); y usarlo de otras formas (en un registro, tabla, etc.)

    – FryGuy

    30 de octubre de 2009 a las 1:20

  • he usado el print_r devolviendo param bastante mientras estaba codificando PHP. Sin embargo, tendía a escribir print_r( $foo, 1 );. Es más rápido de escribir;) Y sobre esto en adelante, no me importa mucho la legibilidad cuando encuentro el nombre. print_r tampoco muy descriptivo.

    – exhumación

    7 de junio de 2010 a las 7:03

  • var_dump() no admite el segundo argumento que le permite devolver un valor como print_r() hace, porque var_dump() puede aceptar múltiples argumentos para la salida.

    – thomasrutter

    14 de febrero de 2014 a las 0:32


  • @thomasrutter Cierto, no estoy seguro de por qué escribí eso.

    – Alex

    14 de febrero de 2014 a las 5:31

1646966172 748 ¿Cual es la diferencia entre echo print y print r en
n randhawa

La diferencia entre eco, imprimir, imprimir_r y var_dump es muy simple.

eco

eco en realidad no es una función sino una construcción de lenguaje que se utiliza para imprimir la salida. Es marginalmente más rápido que la impresión.

echo "Hello World";    // this will print Hello World
echo "Hello ","World"; // Multiple arguments - this will print Hello World

$var_1=55;
echo "$var_1";               // this will print 55
echo "var_1=".$var_1;        // this will print var_1=55
echo 45+$var_1;              // this will print 100

$var_2="PHP";
echo "$var_2";                   // this will print PHP

$var_3=array(99,98,97)           // Arrays are not possible with echo (loop or index  value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with echo (loop or index  value required)

También puede usar la declaración de eco con o sin paréntesis

echo ("Hello World");   // this will print Hello World

imprimir

Al igual que eco construir imprimir es también una construcción del lenguaje y no una función real. Las diferencias entre eco y imprimir es eso imprimir sólo acepta un único argumento y imprimir siempre devuelve 1. Mientras que eco no tiene valor de retorno. Entonces imprimir La declaración se puede utilizar en expresiones.

print "Hello World";    // this will print Hello World
print "Hello ","World"; // Multiple arguments - NOT POSSIBLE with print
$var_1=55;
print "$var_1";               // this will print 55
print "var_1=".$var_1;        // this will print var_1=55
print 45+$var_1;              // this will print 100

$var_2="PHP";
print "$var_2";                   // this will print PHP

$var_3=array(99,98,97)           // Arrays are not possible with print (loop or index  value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with print (loop or index  value required)

Al igual que eco, imprimir se puede usar con o sin paréntesis.

print ("Hello World");   // this will print Hello World

imprimir_r

los imprimir_r() La función se utiliza para imprimir información legible por humanos sobre una variable. Si el argumento es una matriz, imprimir_r() La función imprime sus claves y elementos (lo mismo para los objetos).

print_r ("Hello World");    // this will print Hello World

$var_1=55;
print_r ("$var_1");               // this will print 55
print_r ("var_1=".$var_1);        // this will print var_1=55
print_r (45+$var_1);              // this will print 100

$var_2="PHP";
print_r ("$var_2");                // this will print PHP

$var_3=array(99,98,97)             // this will print Array ( [0] => 1 [1] => 2 [2] => 3 ) 
$var_4=array("P"=>"3","J"=>"4");   // this will print  Array ( [P] => 3 [J] => 4 ) 

var_dump

var_dump función generalmente utilizada para la depuración e imprime la información (tipo y valor) sobre una variable/matriz/objeto.

var_dump($var_1);     // this will print  int(5444) 
var_dump($var_2);     // this will print  string(5) "Hello" 
var_dump($var_3);     // this will print  array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } 
var_dump($var_4);     // this will print  array(2) { ["P"]=> string(1) "3" ["J"]=> string(1) "4" }

1646966173 201 ¿Cual es la diferencia entre echo print y print r en
usuario1899888

echo

No tener tipo de retorno

print

Tener tipo de retorno

print_r()

Salidas como formateadas,

1646966173 777 ¿Cual es la diferencia entre echo print y print r en
Bajo tierra

Eco :

Es una declaración, no una función Sin valor de retorno

No requerido los paréntesis

No imprimir matriz

Imprimir

es una funcion real

Devolución tipo 1

Requerido los paréntesis

No imprimir matriz

imprimir_r

Imprimir en formato legible por humanos

Cadena no entre comillas

No información detallada de variable como tipo y todo

var_dump

Toda la información de volcado de variables como el tipo de elemento y subelemento

1646966174 169 ¿Cual es la diferencia entre echo print y print r en
cleopatra

**Echo puede aceptar múltiples expresiones mientras que la impresión no puede. La función PHP Print_r () se usa para devolver una matriz en una forma legible por humanos. simplemente se escribe como

![Print_r ($your_array)][1]

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad