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
Oct 09 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
php多文件上传实现代码
Feb 20 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
Sep 29 PHP
php的mssql数据库连接类实例
Nov 28 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
PHP小偷程序的设计与实现方法详解
Oct 15 PHP
PHP下的浮点运算不准的解决方法
Oct 27 PHP
php 输出json及显示json中的中文汉字详解及实例
Nov 09 PHP
PHP基于自定义类随机生成姓名的方法示例
Aug 05 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
Feb 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
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
php发送post请求函数分享
2014/03/06 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
2007/08/19 Javascript
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
js调试工具Console命令详解
2014/10/21 Javascript
vue v-model表单控件绑定详解
2017/05/17 Javascript
深入理解vue Render函数
2017/07/19 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
python实现简单的TCP代理服务器
2014/10/08 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
Python Pillow Image Invert
2019/01/22 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
详解python itertools功能
2020/02/07 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
python3中布局背景颜色代码分析
2020/12/01 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
网站开发实习生的自我评价
2013/12/11 职场文书
公民授权委托书范本
2014/09/17 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
CAD实训总结范文
2015/08/03 职场文书