黑帽联盟

 找回密码
 会员注册
查看: 1494|回复: 0
打印 上一主题 下一主题

[php] php调试时echo,print_r(),var_dump()的区别

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    echo()
    可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。

    print()
    函数print()打印一个值(它的参数),如果字符串成功显示则返回true,否则返回false。

    print_r()
    可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。但print_r()输出布尔值和NULL的结果没有意义,因为都是打印"\n"。因此用var_dump()函数更适合调试。

    打印关于变量的易于理解的信息,如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。 记住,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。

    var_dump()

    此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

    判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

    var_dump和print_r的区别:

    var_dump返回表达式的类型与值而print_r仅返回结果,相比调试代码使用var_dump更便于阅读。



    eg:二维数组的输出:
    $arr=array(
               array('a'=>'aa','b'=>'bbb','c'=>'ccc'),
               array('a'=>'ddd','b'=>'eee','c'=>'fff'),
               array('a'=>'gg','b'=>'hh'));

    print_r($arr);
    //print_r输出:
    //Array ( [0] => Array ( [a] => aa [b] => bbb [c] => ccc )
                       [1] => Array ( [a] => ddd [b] => eee [c] => fff )
                       [2] => Array ( [a] => gg [b] => hh ) )

    var_dump($arr);
    //var_dump输出:
    /* array (size=3)
      0 =>
      array (size=3)
       'a' => string 'aa' (length=2)
       'b' => string 'bbb' (length=3)
       'c' => string 'ccc' (length=3)
      1 =>
      array (size=3)
               'a' => string 'ddd' (length=3)
       'b' => string 'eee' (length=3)
       'c' => string 'fff' (length=3)
      2 =>
      array (size=2)
       'a' => string 'gg' (length=2)
       'b' => string 'hh' (length=2)
    */

    下面在给出一个json格式的输出:

    $arr=array(array('a'=>'aa','b'=>'bbb','c'=>'ccc'),
               array('a'=>'ddd','b'=>'eee','c'=>'fff'),
               array('a'=>'gg','b'=>'hh'));
    $arra=json_encode($arr);
    print_r($arra);
    //print_r输出:
    [{"a":"aa","b":"bbb","c":"ccc"},{"a":"ddd","b":"eee","c":"fff"},{"a":"gg","b":"hh"}]

    var_dump($arra);
    //var_dump输出:
    string '[{"a":"aa","b":"bbb","c":"ccc"},{"a":"ddd","b":"eee","c":"fff"},{"a":"gg","b":"hh"}]' (length=84)

    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部