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'
注意兩點:
在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;
}
此文章所在專題列表如下: