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.
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.
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 echo
Nunca 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.0
o false
y ''
:
array(4) {
[0]=>
int(0)
[1]=>
float(0)
[2]=>
bool(false)
[3]=>
string(0) ""
}
Array
(
[0] => 0
[1] => 0
[2] =>
[3] =>
)
¿Qué es la estructura del lenguaje?
– Dios mío
30 de octubre de 2009 a las 1:08
@Shore: es algo integrado en el lenguaje que no es una función. Por lo general, son muy rápidos y no funcionan exactamente como las funciones normales.
– Alex
30 de octubre de 2009 a las 1:26
Editado dos años después para corregir las inexactitudes identificadas en estos comentarios. Gracias a todos, debo haber estado durmiendo el 7 de junio de 2010. 😉
– John Kugelmann
24 de septiembre de 2011 a las 2:24
– Travesti3
26/08/2015 a las 19:30
¡Rápido, al móvil del abogado!
– John Kugelmann
26 de agosto de 2015 a las 21:04
thomasrutter
eco
Sin valor de retorno
p.ej echo "String 1", "String 2"
imprimir
Devoluciones 1
por lo que se puede utilizar en una expresión
p.ej print "Hello"
o, if ($expr && print "foo")
imprimir_r()
var_dump()
print_r()
por ejemplo, también imprime el escribe de valoresvar_export()
print_r()
y var_dump()
– ¡La salida resultante es un código PHP válido!Notas:
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
.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).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
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:
Solo porque planteaste el problema, ¿cuál es la diferencia entre echo
ing 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
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" }
usuario1899888
echo
No tener tipo de retorno
print
Tener tipo de retorno
print_r()
Salidas como formateadas,
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
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]
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