时间: 2008-07-27 / 分类: WEB后端编程 - 开发与实践 / 浏览次数: / 0 个评论 发表评论
PHP调试 print_r()和var_dump()及var_export的区别
WEB前端开发中的一些编程风格和书...
黄金分割与摄影构图
12条经典摄影技巧
CSS Hack浏览器兼容IE6+IE7+IE8+IE9+FF

、var_export几个函数都是用来打印数组对象。
1、print_r ( $array/$var )
print 是打印的意思,而r则取自Array的单词,那么该函数的功能就是打印数组内容,它既可以打印数组内容,也可以打印普通的变量。print_r() 显示关于一个变量的易于理解的信息。如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似,是用来输入数组的。不适合调试,只能显示只能是数组或者对象。
print_r ($_REQUEST) ;
print_r ($_GET) ; /* 打印使用GET方法传递的表单内容*/
print_r ($_POST) ; /* 打印使用表单POST方法传递过的数组内容*/

$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); //没有输出
2、 var_dump ($object/$array/$var)
var 代表变量(Variable),变量包括对象、数组以及标量变量,dump有倒出之意,加在一块,就是将变量或对象的内容全部输出出来。
var_dump() : 返回表达式的类型与值。数组将递归展开值,通过缩进显示其结构,主要是用来调试的,如可以输出字符串,数组,数字,对象,还指明变量的类型及长度……
var_dump($DB) ; /*打印$DB数据库连接对象的内容*/
var_dump($fileHandle) ; /*打印文件句柄对象的内容*/
var_dump($Smarty) ; /*打印Smarty模板对象*/

因此,调试的时候用var_dump()比print_r()更好.var_dump()函数用适合阅读的格式显示任何PHP值:
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_dump调试比print_r主要多的是能把数据类型信息也给显示出来。
3、 ($object/$array/$var)
输出或返回一个变量的字符表示。此函数返回关于传递给函数的变量的结构信息,它和print_r()类似,不同的是其返回的表示是合法的PHP代码。可以通过将函数的第二个参数设置为TRUE,从而返回变量的表示。
var_export(): 此函数返回关于传递给该函数的变量的结构信息 和 var_dump() 类似,不同的是其返回的表示是合法的 代码.
看下面代码:
<?php
$a = array (1,2, array(“a”,”b”,”c”)) ;
var_export ($a) ;
echo “<br>” ;
$v = var_export ($a , TRUE) ;
echo $v ;
?>
上例中,$v = var_export ( $a , TRUE) 表示返回的是PHP的源代码,可以直接用PHP脚本的数组文件中。
总结说明:
以上三个函数都可以打印对象的值、系统函数值以及数组的内容;
1、 echo 、print、printf可以打印变量内容,但不能显示数组及系统超级变量数组;
2、 print_r 和 var_dump不仅可以打印数组、标量变量,还可以打印对象的内容;
3、 var_dump语句不仅能打印变量、数组内容,还可以显示布尔变量和资源(Resource)的内容;
4、 var_export 函数返回关于传递给该函数的变量的结构信息,和 var_dump()函数类似,不同的是其返回的内容是合法的PHP代码。

      站点地图 | 关于我 | 返回顶部
    Copyright © 2001-2013 { amiku.cn | zhangshunjin.com }. Powered by 

    阿米酷

    张顺金


    浙ICP备11002820号-1