Yo uso echoy print_rmucho, y casi nunca uso print.
Siento que echoes una macro, y print_res un alias devar_dump .
Pero esa no es la forma estándar de explicar las diferencias.
Yo uso echoy print_rmucho, y casi nunca uso print.
Siento que echoes una macro, y print_res un alias devar_dump .
Pero esa no es la forma estándar de explicar las diferencias.
Respuestas:
printy echoson más o menos lo mismo; Ambos son construcciones de lenguaje que muestran cadenas. Las diferencias son sutiles: printtiene un valor de retorno de 1, por lo que puede usarse en expresiones, mientras que echotiene un voidtipo de retorno; echopuede tomar múltiples parámetros, aunque dicho uso es raro; echoes ligeramente más rápido queprint . (Personalmente, siempre uso echo, nunca print).
var_dumpimprime un volcado detallado de una variable, incluido su tipo y el tipo de cualquier subelemento (si se trata de una matriz o un objeto). print_rimprime una variable en una forma más legible para el ser humano: las cadenas no se citan, se omite la información de tipo, no se proporcionan los tamaños de matriz, etc.
var_dumpPor lo general, es más útil que print_rcuando se depura, 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_rusted no puede distinguir la diferencia entre 0y 0.0, o falsey '':
array(4) {
[0]=>
int(0)
[1]=>
float(0)
[2]=>
bool(false)
[3]=>
string(0) ""
}
Array
(
[0] => 0
[1] => 0
[2] =>
[3] =>
)
eco
Sin valor de retorno
p.ej echo "String 1", "String 2"
impresión
Devoluciones 1 , por lo que se puede usar en una expresión
p.ej print "Hello"
o, if ($expr && print "foo")
print_r ()
var_dump ()
print_r(), por ejemplo, también imprime el tipo de valoresvar_export ()
print_r()yvar_dump() , ¡la salida resultante es un código PHP válido!Notas:
printpuede usarse en una expresión, recomiendo que las personas 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 echo.echoy printson construcciones del lenguaje, print_r()y var_dump()/ var_export()son funciones regulares. No necesita paréntesis para encerrar los argumentos echooprint (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 leer los valores 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 en su lugar para almacenar y volver a leer los valores. La velocidad será comparable.echo $a, $b;sintaxis cuando puede hacerlo echo $a . $b;: si $ ao $ b son cadenas realmente grandes, entonces este último usará memoria y tiempo adicionales para crear una versión concatenada separada de las cadenas en la memoria anterior. puede comenzar a dar salida al navegador.
echo $a; echo $b;.
Solo para agregar a la respuesta de John , echodebería ser el único que use para imprimir contenido en la página.
printEs un poco más lento. var_dump()yprint_r() solo debe usarse para depurar.
También vale la pena mencionar que, print_r()y var_dump()por eco, por defecto, agregue un segundo argumento al print_r()menos que se evalúe como verdadero para que regrese, por ejemploprint_r($array, TRUE) .
La diferencia entre hacer eco y volver son:
echoing y returning?
print_rparámetro de retorno mientras codificaba PHP. Sin embargo, tendía a escribir print_r( $foo, 1 );. Es más rápido escribir;) Y sobre esto no me importa mucho la legibilidad ya que el nombre print_rtampoco me parece muy descriptivo.
var_dump()no admite el segundo argumento, lo que le permite devolver un valor como print_r()sí, porque var_dump()puede aceptar múltiples argumentos para generar.
echo
No tener tipo de devolución
print
Tener tipo de devolución
print_r()
Salidas como formateadas,
La diferencia entre echo , print , print_r y var_dump es muy simple.
eco
echo no es en realidad 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 echo con o sin paréntesis
echo ("Hello World"); // this will print Hello World
impresión
Al igual que echo construct print, también es una construcción de lenguaje y no una función real. La diferencia entre echo e print es que print solo acepta un único argumento y print siempre devuelve 1. Mientras que echo no tiene valor de retorno. Entonces, la declaración de impresión se puede usar 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 echo , la impresión se puede usar con o sin paréntesis.
print ("Hello World"); // this will print Hello World
print_r
La función print_r () se usa para imprimir información legible por humanos sobre una variable. Si el argumento es una matriz, la función print_r () 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
La función var_dump generalmente se usa para depurar 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" }
Eco :
Es una declaración, no una función Sin valor de retorno
No se requieren los paréntesis
No imprimir matriz
Impresión
Es una función real
Tipo de retorno 1
Requerido los paréntesis
No imprimir matriz
Imprimir_r
Imprimir en formato legible para humanos
Cadena no entre comillas
Información no detallada de tipo variable y todo
var_dump
Toda la información de volcado de variables como tipo de elemento y subelemento
print es una función real, es una construcción de lenguaje como echo. También se puede usar como una declaración. no es una declaración ni se puede usar en una. no no requiere paréntesis, ni tampoco eco o impresión utilizan los paréntesis, como una función haría. También se perdió una de las principales diferencias: echo acepta múltiples cadenas para hacer eco separadas por comas. echoprint
** Echocan acepta múltiples expresiones mientras que print no puede. La función PHP Print_r () se usa para devolver una matriz en una forma legible para humanos. Simplemente se escribe como
![Print_r ($your_array)][1]
echo: echo es una construcción de lenguaje en la que no es necesario usar paréntesis y puede tomar cualquier número de parámetros y devolver void.
void echo (param1,param2,param3.....);
Example: echo "test1","test2,test3";
print: es una construcción de lenguaje donde no es necesario usar paréntesis, solo toma un parámetro y devuelve
1 always.
int print(param1);
print "test1";
print "test1","test2"; // It will give syntax error
prinf: es una función que toma al menos una cadena y estilo de formato y devuelve la longitud de la cadena de salida.
int printf($string,$s);
$s= "Shailesh";
$i= printf("Hello %s how are you?",$s);
echo $i;
Output : Hello Shailesh how are you?
27
echo returns void so its execution is faster than print and printf
print_r() se utiliza para imprimir la matriz en formato legible para humanos.
print_r () puede imprimir el valor, pero también si se pasa el segundo parámetro de indicador y es VERDADERO: devolverá el resultado impreso como una cadena y nada se enviará a la salida estándar. Sobre var_dump. Si se instala el depurador XDebug, los resultados de salida se formatearán de una manera mucho más legible y comprensible.