php中var_export与var_dump的区别分析


Posted in PHP onAugust 21, 2010

一 var_dump
(PHP 3 >= 3.0.5, PHP 4, PHP 5)
var_dump -- 打印变量的相关信息
描述
void var_dump ( mixed expression [, mixed expression [, ...]] )

此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

$data = array ('name' => 'abc', 'job' => 'programmer','a'=>array('aa','cc','bb')); 
$data = var_dump($data,TRUE); 
echo $data;

输出形式如下:
array(3) { 
["name"]=> 
string(3) "abc" 
["job"]=> 
string(10) "programmer" 
["a"]=> 
array(3) { 
[0]=> 
string(2) "aa" 
[1]=> 
string(2) "cc" 
[2]=> 
string(2) "bb" 
} 
} 
bool(true)

二 var_export
(PHP 4 >= 4.2.0, PHP 5)
var_export -- 输出或返回一个变量的字符串表示
描述
mixed var_export ( mixed expression [, bool return] )

此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。
您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。
EG:
var_export(array('a','b',array('aa','bb','cc'))) 这种与VAR_DUMP没什么区别;

$var =var_export(array('a','b',array('aa','bb','cc')),TRUE),加上TRUE后,不会再打印出来,而是给了一个变量,这样就可以直接输出;
echo $var;此时输出来的形式与var_dump()打印的相似。
EG2

$data = array ('name' => 'abc', 'job' => 'programmer','a'=>array('aa','cc','bb')); 
$data = var_export($data,TRUE); 
echo $data;

输出形式如下:
array ( 
'name' => 'abc', 
'job' => 'programmer', 
'a' => 
array ( 
0 => 'aa', 
1 => 'cc', 
2 => 'bb', 
), 
)

以下是补充资料:
error_log(var_export(yblog_mspconfiginit("ratings"),true));
问题原因
var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。而这个变量就会取得和被var_export一样的类型的值。但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL.

问题发现
在跟踪yratings_get_targets的时候,

error_log(var_export(yblog_mspconfiginit("ratings"),true));老是打印出yblog_mspconfiginit(“ratings”)的返回是NULL

导致我以为是无法建立和DB的连接,走错路了一天。

最后才发现,这是var_export和var_dump的区别之一

这就是:

问题原因
var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值

但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL
实例

$res = yblog_mspconfiginit("ratings"); 
var_dump($res); 
var_export($res);

结果:
resource(1) of type (yahoo_yblog)

NULL再比如:
$res = fopen('status.html', 'r'); 
var_dump($res); 
var_export($res);

结果:
resource(2) of type (stream) 
NULL
PHP 相关文章推荐
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
php中的curl使用入门教程和常见用法实例
Apr 10 PHP
php中JSON的使用与转换
Jan 14 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
php给每个段落添加空格的方法
Mar 20 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
Nov 16 PHP
PHP join()函数用法与实例讲解
Mar 11 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 PHP
swoole锁的机制代码实例讲解
Mar 04 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 PHP
php visitFile()遍历指定文件夹函数
Aug 21 #PHP
php excel类 phpExcel使用方法介绍
Aug 21 #PHP
php下正则来匹配dede模板标签的代码
Aug 21 #PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 #PHP
使用VisualStudio开发php的图文设置方法
Aug 21 #PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 #PHP
ThinkPHP中实例Model方法的区别说明
Aug 21 #PHP
You might like
PHP.MVC的模板标签系统(一)
2006/09/05 PHP
php whois查询API制作方法
2011/06/23 PHP
php解析url的三个示例
2014/01/20 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
php使用mysqli向数据库添加数据的方法
2015/03/20 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
Javascript 代码也可以变得优美的实现方法
2009/06/22 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
详解javascript中原始数据类型Null和Undefined
2015/12/17 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
python 读写txt文件 json文件的实现方法
2016/10/22 Python
python实现解数独程序代码
2017/04/12 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
Python字符串的修改方法实例
2019/12/19 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
海淘母婴商城:国际妈咪
2016/07/23 全球购物
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
网络教育自我鉴定
2013/11/01 职场文书
简易离婚协议书范本2014
2014/10/15 职场文书
公司离职证明标准格式
2014/11/18 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
优秀学生主要事迹怎么写
2015/11/04 职场文书
2016高考寄语集锦
2015/12/04 职场文书
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
python全面解析接口返回数据
2022/02/12 Python