详细介绍PHP在调试时echo print() print_r() var_dump()的区别分享

黄舟
发布: 2017-03-27 09:56:55
原创
1957人浏览过

echo

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

print()

  函数print()打印一个值(它的参数),如果字符串成功显示则返回true,否则返回false。和echo一样,但速度比echo慢。

print_r()

  可以把字符串和数字简单地打印出来,如果给出的是 string、integer 或 float,将打印变量值本身。object 与数组类似。而数组则以括起来的键和值得列表形式显示,并以Array开头。记住,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。

$arr = array('name'=> 'bob','age' => 20, 'sex' => 'man');

print_r($arr);
登录后复制

输出形如:

Array{
     [name] => bob,

     [age] => 20,

     [sex] => man
}
登录后复制

  但对,用print_r()来显示布尔值和NULL是没有意义的:

立即学习PHP免费学习笔记(深入)”;

如:

print_r(true);           //输出1
print_r(false);          //没有输出
print_r(null);          //没有输出
登录后复制

  print_r()输出布尔值和NULL的结果没有意义,因为都是打印”\n”。因此用var_dump()函数更适合调试。

var_dump()

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

var_dump(true); //输出 bool(true)
var_dump(false);   // bool(false)
var_dump(null);   // bool(null)
var_dump(array('name' => 'bob', 'age' => 20));
array(2) {
    ['name'] => string(3) 'bob'
    ['age'] => int(20)
}
登录后复制

var_export()

   跟print_r和var_dump类似,但是很少用。

var_dump和print_r的区别

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

  print_r(),var_export(),var_dump()的区别具体见下:

二维数组的输出:

$arr=array(        
array('a'=>'aa','b'=>'bbb','c'=>'ccc'),        
array('a'=>'ddd','b'=>'eee','c'=>'fff'), 
        array('a'=>'gg','b'=>'hh')
);
echo "<pre class="brush:php;toolbar:false">";
print_r($arr);echo "
登录后复制
";echo "
";
var_export($arr);echo "
登录后复制
";echo "
";
var_dump($arr);echo "
登录后复制
";

print_r($arr)的输出结果

Array(
    [0] => Array
        (
            [a] => aa
            [b] => bbb
            [c] => ccc
        )

    [1] => Array
        (
            [a] => ddd
            [b] => eee
            [c] => fff
        )

    [2] => Array
        (
            [a] => gg
            [b] => hh
        )

)
登录后复制

var_export($arr)的输出结果

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)的输出结果

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);echo "<pre class="brush:php;toolbar:false">";
print_r($arra);echo "
登录后复制
";echo "
";
var_export($arra)echo "
登录后复制
";echo "
";
var_dump($arra);echo "
登录后复制
";

print_r($arra)输出

[{"a":"aa","b":"bbb","c":"ccc"},{"a":"ddd","b":"eee","c":"fff"},{"a":"gg","b":"hh"}]
登录后复制

var_export($arra)输出

'[{"a":"aa","b":"bbb","c":"ccc"},{"a":"ddd","b":"eee","c":"fff"},{"a":"gg","b":"hh"}]'
登录后复制

var_dump($arra)输出

string '[{"a":"aa","b":"bbb","c":"ccc"},{"a":"ddd","b":"eee","c":"fff"},{"a":"gg","b":"hh"}]' (length=84)
登录后复制

以上就是详细介绍PHP在调试时echo print() print_r() var_dump()的区别分享的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号