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

如果使用并设置为TRUEvar_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

Web Services →

© 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

https://secure.php.net/manual/en/function.var-export.php