PHP函数var_export()的用法

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 = 'phpbox';  
    $rs = var_export ( $v, TRUE );  
	
    echo $rs;
?>
程序运行结果:
'phpbox'

注意两点:

  • 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;  
}  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值