print_r()、var_dump()、var_export()的区别

博客介绍了print_r()、var_export()、var_dump()三个PHP函数的差异。print_r()和var_dump()遇到已处理变量会输出*RECURSION*,var_export()输出null以确保代码可执行;print_r()和var_export()接收第二个参数设为true时,可返回变量字符串而非直接打印。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这三个函数都是打印信息,但是它们之间有点差异

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!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值