var_dump,var_export和print_r之间的区别
var_dump
, var_export
和print_r
什么区别?
var_dump用于debugging目的。 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也用于debugging目的,但不包括成员的types。 如果您知道数组中元素的types,那么使用它是一个好主意,但是否则可能会产生误导。 print_r
默认打印结果,但允许使用可选的$return
参数作为string$return
。
Array ( [0] => [1] => [2] => 42 [3] => Array ([0] => 42) )
var_export输出有效的php代码。 如果你计算了一些值,并希望结果在另一个脚本中是一个常量,那么这很有用 请注意, var_export
无法处理引用循环/recursion数组,而var_dump
和print_r
检查这些循环/recursion数组。 var_export
默认打印结果,但允许使用可选的$return
参数作为string$return
。
array ( 0 => '', 2 => false, 2 => 42, 3 => array (0 => '42',), )
就我个人而言,我认为var_export
是简洁和精确的最佳折衷。
var_dump
和var_export
是这样的(从手册 )
var_export()获取有关给定variables的结构化信息。 它与var_dump()类似,只有一个例外:返回的表示是有效的PHP代码。
它们与print_r
不同, var_dump
导出更多的信息,比如数据types和元素的大小。