首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >var_dump、var_export和print_r的区别

var_dump、var_export和print_r的区别
EN

Stack Overflow用户
提问于 2011-02-18 17:10:34
回答 2查看 45.1K关注 0票数 131

var_dumpvar_exportprint_r有什么区别?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-18 17:17:35

用于调试目的。var_dump总是打印结果。

代码语言:javascript
复制
// 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参数以字符串形式返回。

代码语言:javascript
复制
Array (
    [0] =>
    [1] =>
    [2] => 42
    [3] => Array ([0] => 42)
)

打印有效的php代码。如果您计算了一些值并希望将结果作为另一个脚本中的常量,则此方法非常有用。注意,var_export不能处理引用循环/递归数组,而var_dumpprint_r会检查这些循环/递归数组。默认情况下,var_export打印结果,但允许使用可选的$return参数以字符串形式返回。

代码语言:javascript
复制
array (
  0 => '',
  1 => false,
  2 => 42,
  3 => array (0 => '42',),
)

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

票数 199
EN

Stack Overflow用户

发布于 2011-02-18 17:16:10

var_dumpvar_export的关系是这样的(来自manual)

var_export()获取有关给定变量的结构化信息。它类似于var_dump(),但有一个不同之处:返回的表示是有效的PHP代码。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5039431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档