在将数组吐出为字符串方面,var_dump()
和print_r()
之间有什么区别?
答案 0 :(得分:331)
var_dump
函数显示有关变量/表达式的结构化信息,包括类型和值。递归地探索数组,其中值缩进以显示结构。它还显示哪些数组值和对象属性是引用。
print_r()
以人类可读的方式显示有关变量的信息。数组值将以显示键和元素的格式显示。类似的符号用于对象。
示例:强>
$obj = (object) array('qualitypoint', 'technologies', 'Pakistan');
var_dump($obj)
将在屏幕下方的输出中显示。
object(stdClass)#1 (3) {
[0]=> string(12) "qualitypoint"
[1]=> string(12) "technologies"
[2]=> string(5) "Pakistan"
}
并且,print_r($obj)
将在屏幕下方的输出中显示。
stdClass Object (
[0] => qualitypoint
[1] => technologies
[2] => Pakistan
)
更多信息
答案 1 :(得分:49)
通常,print_r( )
输出更好,更简洁,更容易阅读,也更人性化但不能显示数据类型。
使用print_r()
,您还可以将输出存储到变量中:
$output = print_r($array, true);
var_dump()
无法做到的。但var_dump()
可以显示数据类型。
答案 2 :(得分:20)
var_dump()
会告诉您事物的类型以及内容。
所以你会得到=> (string)"var"
Example就在这里。
print_r()
只输出内容。
输出=> "var"
Example就在这里。
答案 3 :(得分:12)
如果你问什么时候应该使用什么,我通常使用print_r()
来显示值,var_dump()
用于表示变量类型的问题。
答案 4 :(得分:7)
var_dump
显示有关对象/变量的结构化信息。这包括类型和值。像print_r
一样,数组被递归并缩进。
print_r
使用格式显示数组和对象的键和元素,显示有关值的人类可读信息。
最值得注意的是,var_dump
会输出类型和值,而print_r
则不会。
答案 5 :(得分:5)
var_dump
和print_r
两个函数转储有关变量的信息,但var_dump
多个参数将被转储,而print_r
可以取两个参数,其中第一个参数是你要转储的变量,第二个是布尔值。
var_dump
无法返回任何值,它只能转储/打印值,因为如果我们将print_r
的第二个参数设置为 true,则print_r可以返回变量信息。 print_r
的返回值将采用字符串格式。
print_r
打印的信息更具可读格式,var_dump
打印原始值。
print_r
函数可用于许多上下文中,因为var_dump
可用于调试目的,主要是因为它无法返回值。
答案 6 :(得分:4)
在输出到浏览器时,我建议将var_dump()或printr的输出放入 pre 标记。
print "<pre>";
print_r($dataset);
print "</pre>";
会给出更可读的结果。
答案 7 :(得分:2)
var_dump($var)
通过提供
答案 8 :(得分:2)
太简单了。 var_dump()函数显示有关变量/表达式的结构化信息,包括其类型和值。而 print_r()以人类可读的方式显示有关变量的信息。
示例:说我们有以下数组,我们想显示其内容。
$arr = array ('xyz', false, true, 99, array('50'));
Array
(
[0] => xyz
[1] =>
[2] => 1
[3] => 99
[4] => Array
(
[0] => 50
)
)
array(5) {
[0]=>
string(3) "xyz"
[1]=>
bool(false)
[2]=>
bool(true)
[3]=>
int(100)
[4]=>
array(1) {
[0]=>
string(2) "50"
}
}
有关更多详细信息:https://stackhowto.com/how-to-display-php-variable-values-with-echo-print_r-and-var_dump/
答案 9 :(得分:1)
对于大型数组,print_r可以显示比有用更多的信息。您可以像这样截断它,显示前2000个字符或者您需要的多个字符。
echo "<pre>" . substr(print_r($dataset, 1), 0, 2000) . "</pre>";
答案 10 :(得分:1)
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(): -
示例: -
<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>
答案 11 :(得分:0)
print_r()和var_dump()是PHP中用于调试目的的Array调试函数。 print_r()函数返回数组键及其成员为Array([key] = value),而var_dump()函数返回数组列表及其数据类型和长度的数组键,例如Array(array_length){[0] = string (1) 'A'}。
答案 12 :(得分:0)
我们可以使用var_dump传递多个参数 喜欢:
var_dump("array1",$array1,"array2",$array2);