¿Cuál es la diferencia entre var_dump,var_export y print_r?
¿Cuál es la diferencia entre var_dump,var_export y print_r?
Respuestas:
var_dump es para propósitos de depuración. var_dumpsiempre imprime el resultado.
// 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 también tiene fines de depuración, pero no incluye el tipo de miembro. Es una buena idea usarlo si conoce los tipos de elementos en su matriz, pero de lo contrario puede ser engañoso. print_rde forma predeterminada imprime el resultado, pero permite volver como una cadena en su lugar mediante el uso del$returnparámetroopcional.
Array (
[0] =>
[1] =>
[2] => 42
[3] => Array ([0] => 42)
)
var_export imprime un código php válido. Útil si calculó algunos valores y desea que los resultados sean una constante en otro script. Tenga en cuenta quevar_exportno puede manejar ciclos de referencia / matrices recursivas, mientras quevar_dumpyprint_rverifique estos. var_exportde forma predeterminada imprime el resultado, pero permite volver como una cadena en su lugar mediante el uso del$returnparámetroopcional.
array (
0 => '',
1 => false,
2 => 42,
3 => array (0 => '42',),
)
Personalmente, creo que var_exportes el mejor compromiso de conciso y preciso.
var_export, debido a su naturaleza, morirá una muerte recursiva horrible en, bueno, matrices recursivas. print_ry var_dump(aunque no estoy completamente seguro de esto último, ya que generalmente no lo uso) no tengo ese problema. Así que no var_export($_GLOBALS);, por ejemplo (que se contiene a sí mismo). :)
var_dumpsalida. Lástima que no permite devolver la salida como una cadena. Como tal, puedo relacionarme con el sentimiento de @ iconoclast en el comentario anterior. Pero tener que elegir var_exportmás var_dumppara este caso de uso es aceptable para mí. Para completar, tenga en cuenta esta solicitud de función relacionada .
var_dumpy var_exportrelacionarse así (del manual )
var_export () obtiene información estructurada sobre la variable dada. Es similar a var_dump () con una excepción: la representación devuelta es un código PHP válido.
Difieren de print_r que var_dumpexporta más información, como el tipo de datos y el tamaño de los elementos.