PHP 函数补完:var_export()

来源:互联网 发布:上知传媒 编辑:程序博客网 时间:2024/05/16 16:12

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

<?php$arr = array ( 1 , 2 , array ( "apple" , "banana" , "orange" )); var_export ( $arr ); ?>程序输出:array (  0 => 1,  1 => 2,  2 =>  array (    0 => 'apple',    1 => 'banana',    2 => 'orange',  ),)

注意,上面的输出是合法的PHP代码。假如用var_dump(),则输出为:

array(3) {  [0]=>  int(1)  [1]=>  int(2)  [2]=>  array(3) {    [0]=>    string(5) "apple"    [1]=>    string(6) "banana"    [2]=>    string(6) "orange"  }}

可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。

<?php    $v = 'nowamagic';    $rs = var_export ( $v, TRUE );     echo $rs;?>运行结果:'nowamagic'

注意两点:var_export()会一直保留着结构化形式存储数据.
但是特别请记住:此时的变量值的类型已是字符串了($var),不能再以数组的方式取出里面的值来。

在PHPCMS的源码里,可以看到很多配置的参数都用数组记录的,包括它们的频道、内容等等。

function cache_write($file, $string, $type = 'array') {     if(is_array($string))     {         $type = strtolower($type);         if($type == 'array')         {             $string = "<?php\n return ".var_export($string,TRUE).";\n?>";         }         elseif($type == 'constant')         {             $data='';             foreach($string as $key => $value) $data .= "define('".strtoupper($key)."','". addslashes($value)."');\n";             $string = "<?php\n".$data."\n?>";         }     }     $strlen = file_put_contents(PHPCMS_CACHEDIR.$file, $string);     chmod(PHPCMS_CACHEDIR.$file, 0777);     return $strlen; } 

转载地址:http://www.nowamagic.net/librarys/veda/detail/1927

0 0
原创粉丝点击