var_export
var_export
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
var_export - 输出或返回变量的可解析字符串表示形式
描述
mixed var_export ( mixed $expression [, bool $return = false ] )
var_export()
获取有关给定变量的结构化信息。它与var_dump()类似,但有一个例外:返回的表示形式是有效的PHP代码。
参数
expression
要导出的变量。
return
如果使用并设置为TRUE
,var_export()
将返回变量表示而不是输出它。
返回值
return
使用参数并求值时返回变量表示TRUE
。否则,此函数将返回NULL
。
笔记
注意
:使用该return
参数时,此函数使用内部输出缓冲,因此不能在ob_start()回调函数中使用。
更新日志
版 | 描述 |
---|---|
5.1.0 | 可以使用__set_state()魔术方法导出包含类的类和数组。 |
例子
示例#1 var_export()示例
<?php
$a = array (1, 2, array ("a", "b", "c")
var_export($a
?>
上面的例子将输出:
array (
0 => 1,
1 => 2,
2 =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
),
)
<?php
$b = 3.1;
$v = var_export($b, true
echo $v;
?>
上面的例子将输出:
3.1
示例#2从PHP 5.1.0开始导出类
<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a
?>
上面的例子将输出:
A::__set_state(array(
'var' => 5,
))
示例#3使用
__set_state()
(自PHP 5.1.0起)
<?php
class A
{
public $var1;
public $var2;
public static function __set_state($an_array)
{
$obj = new A;
$obj->var1 = $an_array['var1'];
$obj->var2 = $an_array['var2'];
return $obj;
}
}
$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';
eval('$b = ' . var_export($a, true) . ';' // $b = A::__set_state(array(
// 'var1' => 5,
// 'var2' => 'foo',
// )
var_dump($b
?>
上面的例子将输出:
object(A)#2 (2) {
["var1"]=>
int(5)
["var2"]=>
string(3) "foo"
}
笔记
注意
:此函数无法导出类型资源的变量。
注意
:var_export()
不处理循环引用,因为它几乎不可能生成可解析的PHP代码。如果要对数组或对象的完整表示执行某些操作,请使用serialize()。
警告
当var_export()
导出对象时,前导反斜杠不包含在命名空间类的类名中,以实现最大兼容性。
注意
:为了能够评估由var_export()
生成的PHP ,所有已处理的对象都必须实现magic __set_state方法。请注意
,StdClass不实现__set_state()。
See Also
- print_r() - 打印有关变量的人类可读信息
- serialize() - 生成值的可存储表示
- var_dump() - 转储有关变量的信息
← var_dump
© 1997–2017 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.