在PHPvar_export和var_dump之间的差异分析
一var_dump(PHP > = 3.0.5 3,PHP 4,PHP 5)
var_dump --打印变量的相关信息
描述
无效var_dump(混合表达,混合的表达,…)
这个函数显示关于一个或多个表达式的结构信息,包括表达式的类型和值。数组将递归扩展值并通过缩进显示其结构。
复制代码代码如下所示:
$data =阵列('name' = ABC,工作的'programmer(A = >阵列,AA,'cc,'BB'));
数据var_dump美元(美元数据,真的);
echo $数据;
输出表单如下:
复制代码代码如下所示:
数组(3){
{名称}
字符串(3)abc
{工作}
字符串(10)程序员
{ }
数组(3){
{ 0 } >
字符串(2)aa
{ 1 } >
字符串(2)cc
{ 2 } >
字符串(2)BB
}
}
布尔(真的)
两var_export
(PHP > = 4.2.0 4,PHP 5)
var_export --字符串形式返回一个变量或
描述
混合var_export(混合表达式返回bool {,})
这个函数返回的变量传递给函数的结构信息,它类似于var_dump(),和它的返回表示是合法的PHP代码。
通过将函数的第二个参数设置为true,可以返回变量的表达式。
如:
var_export(阵列(A,B,阵列('AA','BB','cc ')))这是不是var_dump相同;
var = var_export美元(阵列(A,B,阵列('AA','BB','cc ')),真的,再加上真的,不会再重新打印,但会给一个变量,这样就可以直接输出。
echo $变量;此时的输出形式是类似的,var_dump()。
2
复制代码代码如下所示:
$data =阵列('name' = ABC,工作的'programmer(A = >阵列,AA,'cc,'BB'));
数据var_export美元(美元数据,真的);
echo $数据;
输出表单如下:
复制代码代码如下所示:
阵列(
名字= > ABC,
工作= > 'programmer,
a
阵列(
0 =AA,
1 = 'cc,
2 = 'BB',
),
)
以下是补充信息:
error_log(var_export(yblog_mspconfiginit(评级),真的));
问题的原因
的var_export必须回到合法的PHP代码,即代码返回的var_export可以分配一个变量直接作为PHP代码,这个变量将得到价值的相同类型的var_export.however,当变量类型是资源,它不能简单地复制,所以当var_export变量资源型,var_export将返回空..
问题的发现
当跟踪yratings_get_targets,
复制代码代码如下所示:
error_log(var_export(yblog_mspconfiginit(评级),真的));返回,总是打印yblog_mspconfiginit(评级)是无效的
因为我认为这是连接不能建立和DB,在错误的一天。
最后,才发现这是一个var_export和var_dump之间的差异
终于到了!
问题的原因
的var_export必须回到合法的PHP代码,即代码返回的var_export可以分配一个变量直接作为PHP代码,这个变量将得到价值的相同类型的var_export。
然而,当变量类型是资源,它不能简单地复制,所以当var_export变量是资源型,var_export将返回null。
例子
复制代码代码如下所示:
RES = yblog_mspconfiginit美元(评级);
var_dump(合物);
var_export(合物);
结果:
复制代码代码如下所示:
(1)资源类型(yahoo_yblog)
NULL,例如:
复制代码代码如下所示:
为研究= fopen('status .html,R');
var_dump(合物);
var_export(合物);
结果:
复制代码代码如下所示:
类型(流)的资源(2)
无效的