PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

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

黄舟
黄舟 原创
2017-03-27 09:56:55 1476浏览

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是没有意义的:

如:

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>";
print_r($arr);echo "</pre>";echo "<pre>";
var_export($arr);echo "</pre>";echo "<pre>";
var_dump($arr);echo "</pre>";

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>";
print_r($arra);echo "</pre>";echo "<pre>";
var_export($arra)echo "</pre>";echo "<pre>";
var_dump($arra);echo "</pre>";

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中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。