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获取mysql数据库中的所有表名的代码
Apr 23 PHP
php和javascript之间变量的传递实现代码
Dec 19 PHP
如何使用php绘制在图片上的正余弦曲线
Jun 08 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
利用中国天气预报接口实现简单天气预报
Jan 20 PHP
php使用百度ping服务代码实例
Jun 19 PHP
php获取apk包信息的方法
Aug 15 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
分享常见的几种页面静态化的方法
Jan 08 PHP
Twig模板引擎用法入门教程
Jan 20 PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 PHP
Laravel数据库读写分离配置的方法
Oct 13 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
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
PHP中实现图片的锐化
2006/10/09 PHP
人大复印资料处理程序_输入篇
2006/10/09 PHP
PHP 将图片按创建时间进行分类存储的实现代码
2010/01/05 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
php实现购物车功能(上)
2020/07/23 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
angularJS的radio实现单项二选一的使用方法
2018/02/28 Javascript
Python进阶学习之特殊方法实例详析
2017/12/01 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
Python合并多个Excel数据的方法
2018/07/16 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
python之array赋值技巧分享
2019/11/28 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
Opencv求取连通区域重心实例
2020/06/04 Python
皇家阿尔伯特英国官方商店:Royal Albert骨瓷
2019/03/25 全球购物
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
团支书的期末学习总结自我评价
2013/11/01 职场文书
预备党员入党思想汇报
2014/01/04 职场文书
单位实习证明怎么写
2014/01/17 职场文书
投资协议书范本
2014/04/21 职场文书
三好生演讲稿
2014/09/12 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL