• PHP函数补完: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
  • 相关阅读:
    LeetCode "Super Ugly Number" !
    LeetCode "Count of Smaller Number After Self"
    LeetCode "Binary Tree Vertical Order"
    LeetCode "Sparse Matrix Multiplication"
    LeetCode "Minimum Height Tree" !!
    HackerRank "The Indian Job"
    HackerRank "Poisonous Plants"
    HackerRank "Kundu and Tree" !!
    LeetCode "Best Time to Buy and Sell Stock with Cooldown" !
    HackerRank "AND xor OR"
  • 原文地址:https://www.cnblogs.com/lixiaofei1987/p/3175880.html
Copyright © 2020-2023  润新知