var_dump
,var_export
和print_r
之间有什么区别?
答案 0 :(得分:181)
var_dump用于调试目的。 var_dump
始终打印结果。
// 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也用于调试目的,但不包括成员的类型。如果你知道数组中元素的类型,那么使用它是个好主意,否则可能会产生误导。默认情况下,print_r
会打印结果,但允许使用可选的$return
参数作为字符串返回。
Array (
[0] =>
[1] =>
[2] => 42
[3] => Array ([0] => 42)
)
var_export打印有效的PHP代码。如果您计算了一些值并希望结果在另一个脚本中作为常量,则非常有用。请注意,var_export
无法处理引用周期/递归数组,而var_dump
和print_r
会检查这些数据。默认情况下,var_export
会打印结果,但允许使用可选的$return
参数作为字符串返回。
array (
0 => '',
1 => false,
2 => 42,
3 => array (0 => '42',),
)
就我个人而言,我认为var_export
是简明扼要的最佳妥协。
答案 1 :(得分:3)
var_dump
和var_export
就像这样(来自manual)
var_export()得到结构化 有关给定变量的信息。 它与var_dump()类似 exception:返回的表示形式 是有效的PHP代码。
它们与print_r
不同,var_dump
导出更多信息,例如数据类型和元素大小。