这三个函数都是打印信息,但是它们之间有点差异
1、print_r()和var_dump()已经见过一次某个变量,再次见到这个变量,这两个函数会输出*RECURSION*,而不是再次打印这个变量信息,并继续迭代打印其余信息。
var_export()会输出null而不是*RECURSION*,已确保输出可执行php代码。
<?php
$a = ['username'=>"lisi",'age'=>20];
$b = ['username'=>"zhangsan",'age'=>22];
$a['friend']="wang";
$b['friend']="liu";
$a['friend']=&$b;
$b['friend']=&$a;
echo "<pre>";
print_r($b);
echo "<pre>";
var_export($a);
?>
如上述代码打印结果如下
//print_r()打印结果:
Array
(
[username] => zhangsan
[age] => 22
[friend] => Array
(
[username] => lisi
[age] => 20
[friend] => Array
(
[username] => zhangsan
[age] => 22
[friend] => Array
*RECURSION*
)
)
)
//var_export()打印结果
array (
'username' => 'lisi',
'age' => 20,
'friend' =>
array (
'username' => 'zhangsan',
'age' => 22,
'friend' =>
array (
'username' => 'lisi',
'age' => 20,
'friend' => NULL,
),
),
)
2、print_r()和var_export()函数接收第二个参数,如果该参数设置为true,则告诉函数返回变量是字符串而不是直接打印。
print_r($a,true);
var_export($a,true);
返回结果为字符串
谢谢,all!