var_dump
、var_export
和print_r
有什么区别?
发布于 2011-02-18 17:17:35
用于调试目的。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
打印结果,但允许使用可选的$return
参数以字符串形式返回。
Array (
[0] =>
[1] =>
[2] => 42
[3] => Array ([0] => 42)
)
打印有效的php代码。如果您计算了一些值并希望将结果作为另一个脚本中的常量,则此方法非常有用。注意,var_export
不能处理引用循环/递归数组,而var_dump
和print_r
会检查这些循环/递归数组。默认情况下,var_export
打印结果,但允许使用可选的$return
参数以字符串形式返回。
array (
0 => '',
1 => false,
2 => 42,
3 => array (0 => '42',),
)
就我个人而言,我认为var_export
是简洁和精确的最佳折衷。
发布于 2011-02-18 17:16:10
var_dump
和var_export
的关系是这样的(来自manual)
var_export()获取有关给定变量的结构化信息。它类似于var_dump(),但有一个不同之处:返回的表示是有效的PHP代码。
它们与print_r
不同,var_dump
导出更多的信息,比如数据类型和元素的大小。
https://stackoverflow.com/questions/5039431
复制相似问题