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怎样调用MSSQL的存储过程
Oct 09 PHP
PHP 模板高级篇总结
Dec 21 PHP
php中的strpos使用示例
Feb 27 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
thinkphp模板赋值与替换实例简述
Nov 24 PHP
php字符串分割函数用法实例
Mar 17 PHP
php给图片添加文字水印方法汇总
Aug 27 PHP
PHP实现图片上传并压缩
Dec 22 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
PHP简单创建压缩图的方法
Aug 24 PHP
PHP时间类完整代码实例
Feb 26 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数组交集的优化代码分析
2011/03/06 PHP
ThinkPHP中I(),U(),$this->post()等函数用法
2014/11/22 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
jQuery AnythingSlider滑动效果插件
2010/02/07 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
2017/09/12 Javascript
vue实现验证码按钮倒计时功能
2018/04/10 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2018/03/19 Python
python将文本分每两行一组并保存到文件
2018/03/19 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
python实现图书借阅系统
2019/02/20 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
python获取整个网页源码的方法
2020/08/03 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
纪伊国屋新加坡网上书店:Kinokuniya新加坡
2017/12/29 全球购物
大学生创业计划书的格式要求
2013/12/29 职场文书
关于安全的广播稿
2014/10/23 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL