首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

var_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

var_export - 输出或返回变量的可解析字符串表示形式

描述

代码语言:javascript
复制
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()示例

代码语言:javascript
复制
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export($a);
?>

上面的例子将输出:

代码语言:javascript
复制
array (
  0 => 1,
  1 => 2,
  2 => 
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
代码语言:javascript
复制
<?php

$b = 3.1;
$v = var_export($b, true);
echo $v;

?>

上面的例子将输出:

代码语言:javascript
复制
3.1

示例#2从PHP 5.1.0开始导出类

代码语言:javascript
复制
<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>

上面的例子将输出:

代码语言:javascript
复制
A::__set_state(array(
   'var' => 5,
))

示例#3使用 __set_state() (自PHP 5.1.0起)

代码语言:javascript
复制
<?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);
?>

上面的例子将输出:

代码语言:javascript
复制
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

代码语言:txt
复制
 © 1997–2017 The PHP Documentation Group

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

扫码关注腾讯云开发者

领取腾讯云代金券