2010-08-04 26 views

Respuesta

296

Los var_dump indicaciones de función estructurados información sobre variables/expresiones incluyendo su tipo y valor. Las matrices se exploran recursivamente 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 forma legible por humanos. los valores de matriz se presentarán en un formato que muestra claves y elementos. La notación similar se usa para los objetos.

Ejemplo:

$obj = (object) array('qualitypoint', 'technologies', 'India'); 

var_dump($obj) 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) mostrará debajo de la salida en la pantalla.

stdClass Object ( 
[0] => qualitypoint 
[1] => technologies 
[2] => India 
) 

Más información

+60

print_r (null) no devolverá nada cuando var_dump (null) devuelva NULL, que es útil cuando se depura ging – rosh3000

+4

¿Puedes ampliar tu respuesta con 'var_export'? – joryl

+0

Dos ventajas de var_dump() es que la información volcada automáticamente se incluye en un elemento pre. Al usar var_dump(), puede ver que cada tipo tiene su propio color. Mejorando la legibilidad – Julian

19

var_dump() le mostrará el tipo de cosa así como lo que hay en ella.

Así que obtendrá => [cadena] "var" Example aquí.

print_r() solo mostrará el contenido.

Salida => "var" Example aquí.

+9

creo que el mejor ejemplo sería 'var_dump (0,0);' que da salida a 'flotador (0) 'vs' print_r (0.0); 'que genera' 0' (lo que conduce a una posible confusión de tipos) ... – ircmaxell

7

var_dump muestra información estructurada sobre el objeto/variable. Esto incluye tipo y valores. Al igual que print_r, las matrices son recursadas e indentadas.

print_r pantallas legible información acerca de los valores con un formato de presentación de teclas y elementos de arrays y objetos.

Lo más importante es var_dump tipo de salida y valores, mientras que print_r no.

12

Si estás preguntando cuándo se debe utilizar lo que, en general, yo uso print_r() para los valores que muestran var_dump() y para cuando teniendo problemas con los tipos de variables.

48

En general, la salida print_r() es más agradable, más concisa y más fácil de leer, también es más legible para los humanos pero no puede mostrar tipos de datos.

Con print_r() también puede almacenar el resultado en una variable:

$output = print_r($array, true); 

cuales var_dump() no puede hacer. Sin embargo, var_dump() puede mostrar tipos de datos.

+9

var_dump() se puede almacenar en una variable aunque sea un poco más fea: http://stackoverflow.com/questions/139474/how-can-i-capture-the-result-of- var-dump-to-a-string – SgtPooki

+7

también puede ser 'brother' [var_export()] (http://www.php.net/manual/en/function.var-export.php) si necesita guardar –

4

diferencias significativas entre var_dump y print_r

tanto las funciones vuelca la información acerca de la variable, pero var_dump múltiples parámetros que serán objeto de dumping, donde como print_r pueden tomar dos parámetros, de los cuales primer parámetro es la variable que quiere volcar y el segundo es un valor booleano.

var_dump no puede devolver ningún valor sólo puede volcar/imprimir los valores donde como print_r puede devolver la información variable si establecemos segundo parámetro de print_r a cierto. El valor devuelto de print_r estará en el formato de cadena.

La información impresa por print_r es mucho más en formato legible donde var_dump imprime valores brutos.

La función print_r se puede utilizar en muchos contextos en los que var_dump se puede usar principalmente para la depuración ya que no puede devolver el valor.

+1

['vardump'] (http://php.net/manual/en/function.var-dump.php) toma uno ** o más ** argumentos, y cada uno será descargado. – bishop

+0

@bishop, sí, está en lo correcto, puede tomar más argumentos, pero no devuelve ningún valor –

+0

, ¿así que corrige tu respuesta? –

2
detalles

var_dump($var) shows en profundidad, proporcionando detalles adicionales de tipo

  • de datos del valor (incluyendo los elementos descendientes)
  • número de elementos en una variable
  • longitud del valor
4

Recomendaría adicionalmente poner la salida de var_dump() o printr en una etiqueta pre cuando o utputing a un navegador.

print "<pre>"; 
print_r($dataset); 
print "</pre>"; 

Darán un resultado más legible.

1

Con arreglos grandes, print_r puede mostrar mucha más información de la que es útil. Puede truncarlo así, mostrando los primeros 2000 caracteres o cuantos necesite.

echo "<pre>" . substr(print_r($dataset, 1), 0, 2000) . "</pre>"; 
0

print_r() y var_dump() son funciones de depuración de matriz usados ​​en PHP para la depuración de propósito. 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 una lista de arreglos con sus claves de matriz con tipo de datos y longitud, por ejemplo, Array (array_length) {[0] = string (1) 'a'}.

1

var_dump(): -

  1. Esta función muestra información estructurada acerca de 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.
  2. Esta función muestra el número de elemento en una variable.
  3. Esta función muestra la longitud de la variable.
  4. No se puede devolver el valor, solo imprime el valor.
  5. es uso para el propósito de depuración.

Ejemplo: -

<?php 
$a = array(1, 2, array("a", "b", "c")); 
var_dump($a); 
?> 

de 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(): -

  1. Imprime información legible por humanos sobre una variable.
  2. No muestra el número de elemento en una variable como var_dump().
  3. No muestra la longitud de la variable en una variable como var_dump().
  4. Devuelve 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> 

de salida: -

<pre> 
Array 
(
    [a] => apple 
    [b] => banana 
    [c] => Array 
     (
      [0] => x 
      [1] => y 
      [2] => z 
     ) 
) 
</pre> 
Cuestiones relacionadas