var_export()

返回关于传递给该函数的变量的结构信息

var_export() 函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值。看下面一个简单的例子:

1
<?php
2

3
    $arr = array ( 1 , 2 , array ( "apple" , "banana" , "orange" ));
4
    var_export ( $arr );
5

6
?>
程序输出:

01
array (
02
  0 => 1,
03
  1 => 2,
04
  2 =>
05
  array (
06
    0 => ‘apple‘,
07
    1 => ‘banana‘,
08
    2 => ‘orange‘,
09
  ),
10
)
注意,上面的输出是合法的PHP代码。假如用var_dump(),则输出为:

01
array(3) {
02
  [0]=>
03
  int(1)
04
  [1]=>
05
  int(2)
06
  [2]=>
07
  array(3) {
08
    [0]=>
09
    string(5) "apple"
10
    [1]=>
11
    string(6) "banana"
12
    [2]=>
13
    string(6) "orange"
14
  }
15
}
可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。

1
<?php
2

3
    $v = ‘nowamagic‘;
4
    $rs = var_export ( $v, TRUE );
5

6
    echo $rs;
7
?>
程序运行结果:

1
‘nowamagic‘
注意两点:

var_export()会一直保留着结构化形式存储数据.
但是特别请记住:此时的变量值的类型已是字符串了($var),不能再以数组的方式取出里面的值来。
在PHPCMS的源码里,可以看到很多配置的参数都用数组记录的,包括它们的频道、内容等等。

01
function cache_write($file, $string, $type = ‘array‘)
02
{
03
    if(is_array($string))
04
    {
05
        $type = strtolower($type);
06
        if($type == ‘array‘)
07
        {
08
            $string = "<?php\n return ".var_export($string,TRUE).";\n?>";
09
        }
10
        elseif($type == ‘constant‘)
11
        {
12
            $data=‘‘;
13
            foreach($string as $key => $value) $data .= "define(‘".strtoupper($key)."‘,‘".
14
addslashes($value)."‘);\n";
15
            $string = "<?php\n".$data."\n?>";
16
        }
17
    }
18
    $strlen = file_put_contents(PHPCMS_CACHEDIR.$file, $string);
19
    chmod(PHPCMS_CACHEDIR.$file, 0777);
20
    return $strlen;
21
} 
时间: 2024-08-28 17:34:40

var_export()的相关文章

var_export()和var_dump()

var_export() 函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码.var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量. 而这个变量就会取得和被var_export一样的类型的值.看下面一个简单的例子: 1 <?php 2       3     $arr = array ( 1 , 2 , array ( "apple" , 

php中echo、print、print_r、var_dump、var_export区别

(1) print和echo是语言结构,echo输出多个值,多个值之间用逗号分隔,无返回值:print只能输出一个值,有返回值.echo和print输出整型和字符串,没法打印布尔型,如果true,打印1,false打印为空. (2) print_r()除了输出整型和字符串,还可以输出数组和对象,数组和对象使用键值对形式表示,数组时候array(键值对形式):对象时候Object(键值对形式):没法打印布尔型,如果true,打印1,false和NULL打印为空. (3) var_dump()判断变

php中var_export与var_dump的区别分析

一 var_dump void var_dump ( mixed expression [, mixed expression [, ...]] ) 此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值.数组将递归展开值,通过缩进显示其结构. 二 var_export var_export -- 输出或返回一个变量的字符串表示 描述 mixed var_export ( mixed expression [, bool return] ) 此函数返回关于传递给该函数的变量的结构信息,它

php 导出对象生成代码并执行var_export和eval

var_export($obj,true) 导出一个合法的php代码,返回一个字符串 eval($str) 执行一个字符串代码 __set_state 当用var_export导出一个类时,自动调用,必须static <?php class Person { private $name; private $age; public function __construct($name,$age) { $this->name = $name; $this->age = $age; } sta

var_export 函数

var_export 返回传递给改函数的变量的结构信息.和var_dump类似,不同的是,其返回的内容为合法的Php代码. $arr = array(1,2,'3'); $v =   var_export($arr); echo $v; 输出结果为: array ( 0 => 1, 1 => 2, 2 => '3', )

PHP数组缓存:三种方式JSON、序列化和var_export的比较

使用PHP的站点系统,在面对大数据量的时候不得不引入缓存机制.有一种简单有效的办法是将PHP的对象缓存到文件里.下面我来对这3种缓存方法进行说明和比较. 第一种方法:JSONJSON缓存变量的方式主要是使用json_encode和json_decode两个php函数.json_encode可以将变量变成文本格式,这样就可以存到文件里.使用样例如下: // Store cache file_put_contents($cachePath, json_encode($myDataArray)); /

PHP echo()、print()、print_r()、var_dump()、var_export()的区别

PHP中echo.print.print_r.var_dump.var_export的用法与区别 这些均为输出变量的内容: echo();不是函数.是PHP语句.没有返回值:输出一个或者多个字符串或者变量值: print()本质上是一个语言结构而非函数.返回值总是1:用于输出一个或多个字符串或变量的信息:打印出简单类型变量的值.不能打印数组和对象:注意:print()效率低于echo(): print_r()是函数.用于打印关于变量的易于理解的信息:如果给的是string.integer.flo

Lua print table(类似PHP中的print_r/var_export)

会PHP的人都知道PHP中的print_r/var_export函数,可以方便的用于打印数组或导出变量,Lua中没有提供,实际应用中却是很多时候需要类似的功能. 今天便封装了个简单函数,实现类似功能,用来打印/导出table: -- dump.lua --[[ dump对象 @param mixed obj @return string ]] function debug.dump(obj)     local getIndent, quoteStr, wrapKey, wrapVal, dum

PHP返回变量或数组的字符串表示:var_export()

使用var_export()函数可以在服务端程序没有在打印的情况下,配合file_put_contents方便的调试程序,查看变量和数组的内容. 在开发过程中,我们常用var_dump()来打印数组内容,但有时候我们不方便通过浏览器查看调试信息,这时候可以将信息输出到文件中查看,var_export()可以打印或返回变量的字符串表示,返回值是一个字符串,形式类似var_dump()打印的字符串,使用var_export()可以将POST.GET和SESSION等数据写入文件,方便查看. 下面是p

PHP中print_r、var_export、var_dump区别

PHP中print_r.var_export.var_dump区别比较: 可以看出print_r跟var_export都是可以作为返回值的,只需要把第二个参数设置为true即可 print_r(PHP 4 , PHP 5)print_r — 打印关于变量的易于理解的信息. 描述bool print_r ( mixed expression [, bool return]) 注: 参数 return 是在 PHP 4.3.0 的时候加上的 print_r() 显示关于一个变量的易于理解的信息.如果