log - php var_dump() vs print_r()
var_dump($_post) (12)
¿Cuál es la diferencia entre var_dump()
y print_r()
en términos de escupir una matriz como una cadena?
Con matrices grandes, print_r puede mostrar mucha más información de la que es útil. Puede truncarlo de esta forma, mostrando los primeros 2000 caracteres o cuantos necesite.
echo "<pre>" . substr(print_r($dataset, 1), 0, 2000) . "</pre>";
Diferencias significativas entre var_dump
y print_r
ambas funciones vuelcan información sobre la variable , pero var_dump
múltiples parámetros que serán volcados, mientras que print_r
puede tomar dos parámetros, de los cuales el primer parámetro es la variable que desea volcar y el segundo es un valor booleano.
var_dump
no puede devolver ningún valor, solo puede volcar / imprimir los valores, mientras que print_r puede devolver la información variable si establecemos el segundo parámetro de print_r
en verdadero . El valor devuelto de print_r
estará en formato de cadena .
La información impresa por print_r
es mucho más en formato legible donde, como var_dump
imprime valores en bruto.
print_r
función print_r
se puede usar en muchos contextos donde, como var_dump
se puede usar en propósitos de depuración principalmente porque no puede devolver valor.
En general, la salida de print_r( )
es mejor, más concisa y más fácil de leer, también es más legible para los humanos pero no puede mostrar los tipos de datos.
Con print_r()
también puede almacenar la salida en una variable:
$output = print_r($array, true);
que var_dump()
no puede hacer. Sin embargo, var_dump()
puede mostrar tipos de datos.
La función var_dump
muestra información estructurada sobre variables / expresiones, incluido su tipo y valor . Las matrices se exploran de forma recursiva con valores sangrados para mostrar la estructura. También muestra qué valores de matriz y propiedades de objeto son referencias.
El print_r()
muestra información sobre una variable de una manera que los humanos pueden leer. Los valores de la matriz se presentarán en un formato que muestra claves y elementos . Se usa una notación similar para los objetos.
Ejemplo:
$obj = (object) array(''qualitypoint'', ''technologies'', ''India'');
var_dump($obj)
se mostrará debajo de la salida en la pantalla.
object(stdClass)#1 (3) {
[0]=> string(12) "qualitypoint"
[1]=> string(12) "technologies"
[2]=> string(5) "India"
}
Y, print_r($obj)
se mostrará debajo de la salida en la pantalla.
stdClass Object (
[0] => qualitypoint
[1] => technologies
[2] => India
)
Más información
Podemos pasar múltiples parámetros con var_dump como:
var_dump("array1",$array1,"array2",$array2);
Recomiendo adicionalmente colocar la salida de var_dump () o printr en una etiqueta pre al enviar a un navegador.
print "<pre>";
print_r($dataset);
print "</pre>";
Dará un resultado más legible.
Si está preguntando cuándo debe usar qué, generalmente uso print_r()
para mostrar valores y var_dump()
para tener problemas con tipos de variables.
print_r () y var_dump () son funciones de depuración de matrices utilizadas en PHP para fines de depuración. La función print_r () devuelve las claves de la matriz y sus miembros como Array ([key] = value) mientras que la función var_dump () devuelve la lista de la matriz con sus claves de la matriz con el tipo de datos y la longitud, por ejemplo, Array (array_length) {[0] = string (1) ''a''}.
var_dump($var)
muestra detalles en profundidad, al proporcionar detalles adicionales de
- Tipo de datos del valor (incluyendo los elementos descendientes)
- número de elementos en una variable
- longitud del valor
var_dump
muestra información estructurada sobre el objeto / variable. Esto incluye el tipo y los valores. Al igual que las matrices print_r
se recursionan y sangran.
print_r
muestra información legible por humanos sobre los valores con un formato que presenta claves y elementos para matrices y objetos.
Lo más importante a tener en cuenta es que var_dump
generará tanto el tipo como los valores, mientras que print_r
no.
var_dump (): -
- Esta función muestra información estructurada sobre una o más expresiones que incluye su tipo y valor. Las matrices y los objetos se exploran recursivamente con valores sangrados para mostrar la estructura.
- Esta función muestra el número de elemento en una variable.
- Esta función muestra la longitud de la variable.
- No se puede devolver el valor solo imprimir el valor.
- Se utiliza para fines de depuración.
Ejemplo: -
<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>
salida: -
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
print_r (): -
- Imprime información legible por humanos sobre una variable.
- No muestra el número de elemento en una variable como var_dump ().
- No muestra la longitud de la variable en una variable como var_dump ().
- Devuelva el valor si establecemos el segundo parámetro en verdadero en printf_r ().
Ejemplo: -
<pre>
<?php
$a = array (''a'' => ''apple'', ''b'' => ''banana'', ''c'' => array (''x'', ''y'', ''z''));
print_r ($a);
?>
</pre>
Salida:-
<pre>
Array
(
[a] => apple
[b] => banana
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)
</pre>