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 相关文章推荐
经典的PHPer为什么被认为是草根?
Apr 02 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
那些年一起学习的PHP(三)
Mar 22 PHP
php使用GeoIP库实例
Jun 27 PHP
php实现的zip文件内容比较类
Sep 24 PHP
PHP中JSON的应用技巧
Oct 10 PHP
PHP使用MPDF类生成PDF的方法
Dec 08 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
PHP常用的三种设计模式
Feb 17 PHP
PHP读取XML格式文件的方法总结
Feb 27 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
PHP中cookie知识点学习
May 06 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
Yii中的cookie的发送和读取
2016/07/27 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
JS验证码实现代码
2017/09/14 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
2019/05/12 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
jquery实现弹窗(系统提示框)效果
2019/12/10 jQuery
JS+CSS实现过渡特效
2021/01/02 Javascript
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
pycharm 使用心得(六)进行简单的数据库管理
2014/06/06 Python
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
Django values()和value_list()的使用
2020/03/31 Python
Python 解析xml文件的示例
2020/09/29 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
Perfume’s Club意大利官网:欧洲美妆电商
2019/05/03 全球购物
校长寄语大全
2014/04/09 职场文书
公司建议书怎么写
2014/05/15 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
社区敬老月活动总结
2015/05/07 职场文书
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers