zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    CentOS中JAVA_HOME的环境变量设置
    Macserver服务更新经常使用的几个shell命令
    一个技术派创业者的反思
    巴斯卡三角形
    iOS中基于 Socket 的 C/S 结构网络通信(中)
    poj 3267 The Cow Lexicon (动态规划)
    Android入门:短信和拨打电话
    HDUOJ--4888--Redraw Beautiful Drawings【isap】网络流+判环
    Dynamics CRM 2015 New Feature (9): Services Changes
    Class 找出一个整形数组中的元素的最大值
  • 原文地址:https://www.cnblogs.com/lixiaofei1987/p/3175880.html
Copyright © 2011-2022 走看看