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 相关文章推荐
人尽可用的Windows技巧小贴士之下篇
Mar 22 PHP
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
php学习笔记之 函数声明(二)
Jun 09 PHP
php线性表顺序存储实现代码(增删查改)
Feb 16 PHP
phpmyadmin3 安装配置图解教程
Mar 29 PHP
php中HTTP_REFERER函数用法实例
Nov 21 PHP
thinkPHP模型初始化实例分析
Dec 03 PHP
Zend Framework动作助手FlashMessenger用法详解
Mar 05 PHP
nginx下安装php7+php5
Jul 31 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
php批量删除操作(数据访问)
May 23 PHP
laravel框架模型、视图与控制器简单操作示例
Oct 10 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生成不重复随机数的方法汇总
2014/11/19 PHP
PHP经典面试题集锦
2015/03/19 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
jQuery常用数据处理方法小结
2015/02/20 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python os模块介绍
2014/11/30 Python
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
mac下如何将python2.7改为python3
2018/07/13 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
2019/08/09 Python
python绘制随机网络图形示例
2019/11/21 Python
用Python去除图像的黑色或白色背景实例
2019/12/12 Python
pandas分批读取大数据集教程
2020/06/06 Python
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
C#面试常见问题
2013/02/25 面试题
大学生四个方面的自我评价
2013/09/19 职场文书
计算机应用专业推荐信
2013/11/13 职场文书
探矿工程师自荐信
2014/01/24 职场文书
委托书怎么写
2014/07/31 职场文书
实习协议书范本
2014/09/25 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
Python 键盘事件详解
2021/11/11 Python