Qual'è la differenza tra var_dump, var_exporte print_r?
Qual'è la differenza tra var_dump, var_exporte print_r?
Risposte:
var_dump è a scopo di debug. var_dumpstampa sempre il risultato.
// var_dump(array('', false, 42, array('42')));
array(4) {
[0]=> string(0) ""
[1]=> bool(false)
[2]=> int(42)
[3]=> array(1) {[0]=>string(2) "42")}
}
print_r è anche a scopo di debug, ma non include il tipo di membro. È una buona idea usare se si conoscono i tipi di elementi nell'array, ma in caso contrario può essere fuorviante. print_rper impostazione predefinita stampa il risultato, ma consente invece di restituire come stringa utilizzando il$returnparametrofacoltativo.
Array (
[0] =>
[1] =>
[2] => 42
[3] => Array ([0] => 42)
)
var_export stampa un codice php valido. Utile se hai calcolato alcuni valori e desideri che i risultati siano una costante in un altro script. Si noti chevar_exportnon è possibile gestire cicli di riferimento / array ricorsivi, mentrevar_dumpeprint_rverificarli. var_exportper impostazione predefinita stampa il risultato, ma consente invece di restituire come stringa utilizzando il$returnparametrofacoltativo.
array (
0 => '',
1 => false,
2 => 42,
3 => array (0 => '42',),
)
Personalmente, penso che var_exportsia il miglior compromesso tra conciso e preciso.
var_export, a causa della sua natura, morirà un'orribile morte ricorsiva su, bene, array ricorsivi. print_re var_dump(anche se non sono del tutto sicuro di quest'ultimo, dato che di solito non lo uso) non ho questo problema. Quindi non farlo var_export($_GLOBALS);, ad esempio (che contiene se stesso). :)
var_dumpoutput. Peccato che non consente di restituire l'output come stringa. Come tale posso fare riferimento al sentimento di @ iconoclast nel commento sopra. Ma dover scegliere var_exportsu var_dumpper questo caso d'uso è accettabile per me. Per completezza, notare questa richiesta di funzionalità correlata .
var_dumpe si var_exportriferiscono in questo modo (dal manuale )
var_export () ottiene informazioni strutturate sulla variabile data. È simile a var_dump () con un'eccezione: la rappresentazione restituita è un codice PHP valido.
Differiscono da print_rquello che var_dumpesporta più informazioni, come il tipo di dati e la dimensione degli elementi.