您的位置:首页 > 编程语言 > PHP开发

PHP函数补完:var_export()

2015-11-24 09:41 666 查看
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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: