zoukankan      html  css  js  c++  java
  • var_export()

     返回关于传递给该函数的变量的结构信息

    var_export() 函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值。看下面一个简单的例子:
    
    1
    <?php
    2
         
    3
        $arr = array ( 1 , 2 , array ( "apple" , "banana" , "orange" )); 
    4
        var_export ( $arr ); 
    5
         
    6
    ?>
    程序输出:
    
    01
    array (
    02
      0 => 1,
    03
      1 => 2,
    04
      2 =>
    05
      array (
    06
        0 => 'apple',
    07
        1 => 'banana',
    08
        2 => 'orange',
    09
      ),
    10
    )
    注意,上面的输出是合法的PHP代码。假如用var_dump(),则输出为:
    
    01
    array(3) {
    02
      [0]=>
    03
      int(1)
    04
      [1]=>
    05
      int(2)
    06
      [2]=>
    07
      array(3) {
    08
        [0]=>
    09
        string(5) "apple"
    10
        [1]=>
    11
        string(6) "banana"
    12
        [2]=>
    13
        string(6) "orange"
    14
      }
    15
    }
    可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。
    
    1
    <?php
    2
         
    3
        $v = 'nowamagic'; 
    4
        $rs = var_export ( $v, TRUE ); 
    5
         
    6
        echo $rs;
    7
    ?>
    程序运行结果:
    
    1
    'nowamagic'
    注意两点:
    
    var_export()会一直保留着结构化形式存储数据.
    但是特别请记住:此时的变量值的类型已是字符串了($var),不能再以数组的方式取出里面的值来。 
    在PHPCMS的源码里,可以看到很多配置的参数都用数组记录的,包括它们的频道、内容等等。
    
    01
    function cache_write($file, $string, $type = 'array') 
    02
    { 
    03
        if(is_array($string)) 
    04
        { 
    05
            $type = strtolower($type); 
    06
            if($type == 'array') 
    07
            { 
    08
                $string = "<?php
     return ".var_export($string,TRUE).";
    ?>"; 
    09
            } 
    10
            elseif($type == 'constant') 
    11
            { 
    12
                $data=''; 
    13
                foreach($string as $key => $value) $data .= "define('".strtoupper($key)."','". 
    14
    addslashes($value)."');
    "; 
    15
                $string = "<?php
    ".$data."
    ?>"; 
    16
            } 
    17
        } 
    18
        $strlen = file_put_contents(PHPCMS_CACHEDIR.$file, $string); 
    19
        chmod(PHPCMS_CACHEDIR.$file, 0777); 
    20
        return $strlen; 
    21
    } 
  • 相关阅读:
    Python基础06 循环
    Python基础04 运算
    Python基础02 基本数据类型
    Python基础03 序列
    C++ ------ 引用
    C++ ------ 互斥锁、原子操作的性能测试
    Qt ------ 断开某对信号与槽的connect
    5种网络通信设计模型(也称IO模型)
    Qt ------ 主事件循环与 QEventLoop
    Qt ------ 再论事件循环
  • 原文地址:https://www.cnblogs.com/fyy-888/p/5381956.html
Copyright © 2011-2022 走看看