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 return ".var_export($string,TRUE)."; ?>"; } elseif($type == 'constant') { $data=''; foreach($string as $key => $value) $data .= "define('".strtoupper($key)."','". addslashes($value)."'); "; $string = "<?php ".$data." ?>"; } } $strlen = file_put_contents(PHPCMS_CACHEDIR.$file, $string); chmod(PHPCMS_CACHEDIR.$file, 0777); return $strlen; }
延伸阅读
此文章所在专题列表如下:
- PHP函数补完:get_magic_quotes_gpc()
- PHP函数补完:error_reporting()
- PHP函数补完:preg_match()
- PHP函数补完:urlencode()
- PHP函数补完:array_multisort()
- PHP函数补完:array_splice()
- PHP函数补完:isset()
- PHP函数补完:getenv()
- PHP函数补完:header()
- PHP函数补完:mysql_num_rows()
- PHP函数补完:list()
- PHP函数补完:mysql_query()
- PHP函数补完:mysql_fetch_array()
- PHP函数补完:number_format()
- PHP函数补完:explode()
- PHP函数补完:call_user_func()
- PHP函数补完:ImageCopyResamples()
- PHP函数补完:import_request_variables()
- PHP函数补完:parse_url()
- PHP函数补完:移除HTML标签strip_tags()
- PHP函数补完:输出数组结构与内容var_dump()
- PHP函数补完:var_export()
- PHP函数补完:判断变量是否为数字is_numeric()
- PHP函数补完:session_name()
- PHP函数补完:session_id()
- PHP函数补完:nl2br()与nl2p()函数
- PHP函数补完:shuffle()取数组若干个随机元素
- PHP函数补完:http_build_query()构造URL字符串
- PHP函数补完:stream_context_create()模拟POST/GET