var_dump()
和print_r()
作为字符串吐出数组的区别是什么?php var_dump()vs print_r()
回答
的var_dump
功能显示结构化约变量/表达式,包括其类型和值信息。数组递归地用值缩进来显示结构。它还显示哪些数组值和对象属性是引用。
print_r()
以人类可读的方式显示有关变量的信息。数组值将以显示键和元素的格式呈现。类似的符号用于对象。
实施例:
$obj = (object) array('qualitypoint', 'technologies', 'India');
var_dump($obj)
将显示以下输出在屏幕上。
object(stdClass)#1 (3) {
[0]=> string(12) "qualitypoint"
[1]=> string(12) "technologies"
[2]=> string(5) "India"
}
而且,print_r($obj)
将在屏幕下方显示输出。
stdClass Object (
[0] => qualitypoint
[1] => technologies
[2] => India
)
更多信息
var_dump
显示关于对象/变量的结构化信息。这包括类型和值。像print_r
数组通过递归和缩进。
print_r
显示器人类可读关于与格式呈现为数组和对象键和元素的值的信息。
最重要的是要注意的是var_dump
将输出类型以及值,而print_r
不会。
如果你问什么时候应该使用什么,我一般用print_r()
显示值和var_dump()
何时有变量类型的问题。
一般而言,print_r()
输出更好,更简洁,更易于阅读,又名人可读,但无法显示数据类型。
随着print_r()
你也可以输出存入一个变量:
$output = print_r($array, true);
这var_dump()
不能做。然而var_dump()
可以显示数据类型。 var_dump
和print_r
既转储关于可变信息的功能,但var_dump
多个参数之间
var_dump()可以存储在一个变量中,虽然它有点丑:http://stackoverflow.com/questions/139474/how-can-i-capture-the-result-of- var-dump-to-a-string – SgtPooki 2013-02-12 15:15:22
如果你需要保存,你也可以'兄弟'[var_export()](http://www.php.net/manual/en/function.var-export.php) – 2013-04-06 10:32:53
的显着差异,这将被转储,其中作为print_r
可以取两个参数哪些第一参数是可变你想要转储,第二个是布尔值。
var_dump
无法返回任何值,它只能转储/打印,其中,仿佛我们设置的print_r
秒参数真正的print_r可以返回变量信息的值。返回的值print_r
将在字符串格式。
由print_r
打印的信息更多的是可读格式,其中var_dump
打印原始值。
print_r
函数可以在很多情况下使用,其中var_dump
可以用于调试目的,主要是因为它不能返回值。
['vardump'](http://php.net/manual/en/function.var-dump.php)需要一个**或更多**参数,并且每个参数都将被倾倒。 – bishop 2015-09-29 17:29:35
@bishop,是的,你是正确的,它可以采取更多的参数,但它不会返回任何值 – 2015-10-01 07:22:19
所以修复你的答案? – 2016-09-21 20:44:34
var_dump($var)
示出了深入的细节,通过在值的可变
- 数据类型的附加细节(包括后代元素)
- 数量的元件
我会建议把var_dump()或printr的输出放入pre标签,当o输出到浏览器。
print "<pre>";
print_r($dataset);
print "</pre>";
会给出更可读的结果。
对于大型数组,print_r可以显示比有用的信息更多的信息。您可以像这样截断它,显示前2000个字符或您需要的多个字符。
echo "<pre>" . substr(print_r($dataset, 1), 0, 2000) . "</pre>";
print_r()和var_dump()是在PHP中用于调试目的的数组调试函数。 array_length(array_length){[0] = string)返回数组键和其成员为Array([key] = value),而var_dump()函数返回数组列表,其数组键与数据类型和长度一样, (1) 'A'}。
的var_dump(): -
- 该功能显示结构有关,其包括它的类型和值的一个或多个表达式的信息。数组和对象以递归的方式递归探索,其中值显示为结构。
- 此功能显示变量中元素的个数。
- 此功能显示变量的长度。
- 无法返回值只打印值。
- 它用于调试目的。
实施例: -
<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>
输出: -
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
的print_r(): -
- 打印有关变量的人类可读信息。
- 不以var_dump()的形式显示变量中的元素个数。
- 不以变量var_dump()的形式显示变量的长度。
- 如果我们在printf_r()中将第二个参数设置为true,则返回值。
实施例: -
<pre>
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
</pre>
输出: -
<pre>
Array
(
[a] => apple
[b] => banana
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)
</pre>
- 1. php var_dump equivelant或print_r
- 2. var_dump,print_r产生'内容编码错误'
- 3. Var_dump()显示String,echo()/ print_r()返回Nothing
- 4. 难以理解对象的print_r/var_dump
- 5. 从print_r或var_dump隐藏特定的类字段
- 6. no var_dump或print_r无法在网页中回显
- 7. PHP var_dump数组
- 8. 函数来创建可折叠的print_r()var_dump()?
- 9. 从print_r解析PHP()
- 10. PHP变量var_dump = NULL?
- 11. PHP - 如何显示print_r()live
- 12. 的print_r insert语句PHP PDO
- 13. PHP modulo和print_r的结果?
- 14. PHP print_r私有对象
- 15. php print_r漂亮的表
- 16. php var_dump没有完成XML
- 17. 不是var_dump()和print_r()会显示可读信息....但输出相同。为什么?
- 18. 什么是使用var_dump和print_r测试PHP代码的有组织或标准化的方式?
- 19. 在PHP中是否有print_r或var_dump的等价物,默认情况下不会回显结果?
- 20. 的var_dump(str_replace函数)的作品,但后续代码var_dump($ VAR)不
- 21. Scala中的var_dump()
- 22. print_r在PHP中获取对象方法?
- 23. PHP print_r num_rows => 9,但空白页
- 24. PHP Print_r到AS3阵列转换
- 25. 什么是Perl相当于PHP的print_r()?
- 26. ASP.NET,等价于PHP Print_r函数?
- 27. PHP - echo和print_r之间可以串接
- 28. var_dump不打印整数值
- 29. php不同输出的echo和var_dump
- 30. php var_dump()不显示非英文字符
print_r(null)将返回任何值,其中var_dump(null)返回NULL,这在调试时很有用ging – rosh3000 2013-10-02 12:29:00
你能用'var_export'扩展你的答案吗? – joryl 2016-03-23 14:42:43
var_dump()的两个优点是自动转储的信息包含在pre元素中。当使用var_dump()时,你可以看到每种类型都有自己的颜色。增强可读性。 – Julian 2016-09-05 13:04:38