var_dump,var_export和print_r之间​​的区别

var_dumpvar_exportprint_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_dumpprint_r检查这些循环/recursion数组。 var_export默认打印结果,但允许使用可选的$return参数作为string$return

 array ( 0 => '', 2 => false, 2 => 42, 3 => array (0 => '42',), ) 

就我个人而言,我认为var_export是简洁和精确的最佳折衷。

var_dumpvar_export是这样的(从手册 )

var_export()获取有关给定variables的结构化信息。 它与var_dump()类似,只有一个例外:返回的表示是有效的PHP代码。

它们与print_r不同, var_dump导出更多的信息,比如数据types和元素的大小。