码迷,mamicode.com
首页 > 其他好文 > 详细

var_export()

时间:2016-04-12 12:26:16      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

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

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
} 

 

var_export()

标签:

原文地址:http://www.cnblogs.com/fyy-888/p/5381956.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!