• PHP函数补完


    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 return ".var_export($string,TRUE)."; ?>";
        }
        elseif($type == 'constant')
        {
          $data='';
          foreach($string as $key => $value)  $data .= "define('".strtoupper($key)."','".addslashes($value)."'); ";
          $string = "<?php ".$data." ?>";
        }
      }
      $strlen = file_put_contents(PHPCMS_CACHEDIR.$file, $string);
      chmod(PHPCMS_CACHEDIR.$file, 0777);
      return $strlen;
    }

    转载随意,但请带上本文地址:

    http://www.nowamagic.net/librarys/veda/detail/1927

  • 相关阅读:
    JS-只能输入中文和英文
    强密码正则表达式
    java 实体序列化的意义
    数据库中存在0,1,2.....或者1,null,2 排序时让0或者null在最后的sql语句
    Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile 解决办法
    C#中的线程(二) 线程同步基础
    C#中的线程(一)入门
    C#多线程编程
    C#(asp.net )读取ASHX文件(一般处理程序)
    Oracle中三种循环(For、While、Loop)
  • 原文地址:https://www.cnblogs.com/meibao/p/4747228.html
Copyright © 2020-2023  润新知