欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

PHP调试时print_r ,var_dump的区别 PHP中echo()、print()、print_r()、var_dump()的区别

说到输出,不得不提到php中的打印了。

首先当然是最常用的echo了,echo :输出一个或多个字符串;

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

var_export:跟print_r和var_dump类似,但是很少用。
var_dump:
           此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
var_dump和print_r的区别:
            var_dump返回表达式的类型与值而print_r仅返回结果,相比调试代码使用var_dump更便于阅读。

print_r(),var_export(),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_export($arr);
//var_export输出:
 //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_export($arra);
//var_export输出:
 '[{"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) 

 

 具体的区别,我想大家一看就可以明白了吧

来自 http://blog.csdn.net/renzhenhuai/article/details/9317341



常见的输出语句

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

print()
print()输出字符串print() 实际上不是一个函数(它是一个语言结构)所以不能被可变函数调用,因此你可以不必使用圆括号来括起它的参数列表。

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

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

 

复制代码
 1 <?php 2 //演示PHP中输出语句 3 //创建一个数组变量 4 $test='Hello'; 5 $array = array("1"=>"a","2"=>"b",array('c','d','e')); 6   7 echo "</br>使用echo()输出:".$test.$array."</br>"; 8  9 echo "</br>使用print()输出</br>";10 print $test.$array;11 12 echo "</br>使用print_r()输出</br>";13 print_r($test.$array);14  15 echo "</br>使用var_dump()输出</br>";16 var_dump($test.$array);17  18 ?>
复制代码

 输出结果为:

使用echo()输出:HelloArray

使用print()输出
HelloArray
使用print_r()输出
HelloArray
使用var_dump()输出
string(10) "HelloArray"

来自 https://www.cnblogs.com/ylsoftd/p/4529315.html

普通分类: