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堆排序(heapsort)练习
Nov 13 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
PHP中把有符号整型转换为无符号整型方法
May 27 PHP
PHP7+Nginx的配置与安装教程详解
May 10 PHP
php封装的验证码工具类完整实例
Oct 19 PHP
php mysql_list_dbs()函数用法示例
Mar 29 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
php中请求url的五种方法总结
Jul 13 PHP
PHP数据库操作二:memcache用法分析
Aug 16 PHP
PHP实现读取文件夹及批量重命名文件操作示例
Apr 15 PHP
YII框架模块化处理操作示例
Apr 26 PHP
PHP递归统计系统中代码行数
Sep 19 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+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
php SQL Injection with MySQL
2011/02/27 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
Nodejs 获取时间加手机标识的32位标识实现代码
2017/03/07 NodeJs
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
Python标准库与第三方库详解
2014/07/22 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
2019/01/02 Python
python实现图片压缩代码实例
2019/08/12 Python
python中p-value的实现方式
2019/12/16 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
团结演讲稿范文
2014/05/23 职场文书
英语分层教学实施方案
2014/06/15 职场文书
安全先进个人材料
2014/12/29 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
python lambda 表达式形式分析
2022/04/03 Python
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript