php var_dump () vs print_r ()


297

Qual è la differenza tra var_dump()e print_r()in termini di sputare un array come stringa?

Risposte:


355

La var_dumpfunzione visualizza informazioni strutturate su variabili / espressioni incluso il suo tipo e valore . Le matrici vengono esplorate in modo ricorsivo con valori indentati per mostrare la struttura. Mostra anche quali valori di array e proprietà dell'oggetto sono riferimenti.

La print_r()mostra informazioni su una variabile in un modo che è leggibile dagli esseri umani. i valori dell'array verranno presentati in un formato che mostra chiavi ed elementi . Notazione simile viene utilizzata per gli oggetti.

Esempio:

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

var_dump($obj) verrà visualizzato sotto l'output nella schermata.

object(stdClass)#1 (3) {
 [0]=> string(12) "qualitypoint"
 [1]=> string(12) "technologies"
 [2]=> string(5) "India"
}

E, print_r($obj)verrà visualizzato sotto l'output nella schermata.

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

Ulteriori informazioni


76
print_r (null) non restituirà nulla in cui var_dump (null) restituisce NULL che è utile durante il debug
rosh3000

7
Puoi estendere la tua risposta con "var_export"?
joryl,

1
Due vantaggi di var_dump () è che le informazioni di dumping sono automaticamente racchiuse in un pre-elemento. Quando usi var_dump () puoi vedere che ogni tipo ha il suo colore. Miglioramento della leggibilità.
Julian,

3
@Julian solo se è installato
xdebug

57

Generalmente, l' print_r( )output è più gradevole, più conciso e più facile da leggere, ovvero più leggibile dall'uomo ma non può mostrare i tipi di dati.

Con print_r()te puoi anche salvare l'output in una variabile:

$output = print_r($array, true);

che var_dump()non può fare. Tuttavia var_dump()può mostrare i tipi di dati.


9
var_dump () può essere memorizzato in una variabile anche se è un po 'più brutta: stackoverflow.com/questions/139474/...
SgtPooki

7
puoi anche 'fratello' var_export () se hai bisogno di salvare
CSᵠ

21

var_dump() ti mostrerà il tipo di cosa e cosa c'è dentro.

Quindi otterrai => L' (string)"var" esempio è qui.

print_r() produrrà semplicemente il contenuto.

Sarebbe output => L' "var" esempio è qui.


12
Penso che l'esempio migliore sarebbe var_dump(0.0);quali output float(0)vs print_r(0.0);quali output 0(portando quindi a una possibile confusione di tipo) ...
ircmaxell

13

Se mi stai chiedendo quando dovresti usare cosa, di solito lo uso print_r()per visualizzare i valori e var_dump()per quando ho problemi con i tipi variabili.


8

var_dumpvisualizza informazioni strutturate sull'oggetto / variabile. Ciò include tipo e valori. Come gli print_rarray vengono ripetuti e rientrati.

print_rvisualizza le informazioni umane leggibili sui valori con un formato che presenta chiavi ed elementi per matrici e oggetti.

La cosa più importante da notare è il var_dumptipo di output e i valori, mentre print_rnon lo è.


5

Differenze significative tra var_dumpeprint_r

entrambe le funzioni eseguono il dump delle informazioni sulla variabile , ma var_dumppiù parametri che verranno scaricati, dove print_rpossono prendere due parametri da cui il primo parametro è la variabile che si desidera scaricare e il secondo è un valore booleano.

var_dumpnon può restituire alcun valore, può solo scaricare / stampare i valori in cui come print_r può restituire le informazioni della variabile se impostiamo il secondo parametro su print_rsu true . Il valore restituito di print_rsarà in formato stringa .

Le informazioni stampate da print_rsono molto più in formato leggibile dove vengono var_dumpstampati i valori grezzi.

print_rLa funzione può essere utilizzata in molti contesti in cui var_dumppuò essere utilizzata a scopi di debug principalmente perché non può restituire valore.


1
vardumpaccetta uno o più argomenti e ognuno verrà scaricato.
vescovo,

@bishop, sì, hai ragione, può prendere più argomenti, ma non restituisce alcun valore
Akshay Khale,

quindi aggiusta la tua risposta?
Govind Rai,

È stato risolto @GovindRai
Akshay Khale il

"var_dump non può restituire alcun valore"? Sì, può. Tipo. ob_start(); var_dump($var); $dump=ob_get_clean();
Sinus Mackowaty,

3

Raccomanderei adizionale di inserire l'output di var_dump () o printr in un pre tag quando si invia a un browser.

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

Fornirà un risultato più leggibile.


2

var_dump($var) mostra dettagli approfonditi, fornendo ulteriori dettagli di

  • tipo di dati del valore (compresi gli elementi discendenti)
  • numero di elementi in una variabile
  • lunghezza del valore

1

Con array di grandi dimensioni, print_r può mostrare molte più informazioni di quante siano utili. Puoi troncarlo in questo modo, mostrando i primi 2000 caratteri o quanti ne hai bisogno.

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

1

var_dump (): -

  1. Questa funzione visualizza informazioni strutturate su una o più espressioni che ne includono il tipo e il valore. Le matrici e gli oggetti vengono esplorati in modo ricorsivo con valori indentati per mostrare la struttura.
  2. Questa funzione visualizza il numero di elementi in una variabile.
  3. Questa funzione visualizza la lunghezza della variabile.
  4. Impossibile restituire il valore stampa solo il valore.
  5. è utilizzato a scopo di debug.

Esempio :-

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

produzione :-

   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. Stampa informazioni leggibili dall'uomo su una variabile.
  2. Non visualizza il numero dell'elemento in una variabile come var_dump ().
  3. Non visualizza la lunghezza della variabile in una variabile come var_dump ().
  4. Restituisce il valore se impostiamo il secondo parametro su true in printf_r ().

Esempio :-

<pre>
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
</pre>

Produzione:-

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

"Impossibile restituire il valore stampa solo il valore." Sì, può. Tipo. ob_start(); var_dump($var); $dump=ob_get_clean();
Sinus Mackowaty,

0

print_r () e var_dump () sono funzioni di debug di array utilizzate in PHP a scopo di debug. La funzione print_r () restituisce le chiavi dell'array e i suoi membri come Array ([chiave] = valore) mentre la funzione var_dump () restituisce l'elenco dell'array con le sue chiavi dell'array con tipo e lunghezza dei dati, ad es. Array (array_length) {[0] = stringa (1) 'a'}.


0

Possiamo passare più parametri con var_dump come:

var_dump("array1",$array1,"array2",$array2);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.