欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-08 19:33:41
...

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()的区别分享的详细内容,更多请关注其它相关文章!