解析用PHP实现var_export的详细介绍

yipeiwu_com7年前PHP代码库
复制代码 代码如下:

<?php
/**
 * PHP 实现var_export();功能
 */
   $arr = array("1","2","3");
   $arr1 = array('a'=>NULL,'b'=>array('1'=>3));
   var_export($arr);
   //var_export($arr1);
  function varExport($arr){
     $ret = "array( ";
     foreach($arr as $k=>$v){
        $ret .= (is_numeric($k) ? $k : "'".$k."'");
        $ret .= ' => ';
        $_type = strtolower(gettype($v));
        switch($_type){
           case 'integer':
               $ret .= $v." ,";
               break;
           case 'array':
                $ret .= varExport($v).',';
                break;
           case 'null':
                $ret .= "NULL ,";
                break;
           default:
               $ret  .= "'".$v."',";
               break;
        }
     }
     $ret .= " )";
     return $ret;
  }
  //echo varExport($arr);
   echo varExport($arr);
   //bool is_numeric ( mixed $var )如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE
   //故不能用 is_numeric 验证是否为int类型。。。
?>

相关文章

WordPress分页伪静态加html后缀

WordPress分页伪静态加html后缀

问题 当文章有分页的时候,WordPress生成的永久链接是page.html/2的形式,前面一段是文章的$link,后面的数字代表分页$number。那么问题来了,挖掘……不对,从逻辑...

PHP中遇到BOM、&lt;feff&gt;编码导致json_decode函数无法解析问题

昨天同事遇到一个奇怪的问题,就是以下代码,无法通过JSON校验,也无法通过PHP的json_decode函数解析。 复制代码 代码如下: [     { &...

利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法

准备工作: ① 首先要会使用ThinkPHP这个框架 ② 最好有些ajax的基础(可以去看下小飞的另外一篇博文:Ajax实时验证"用户名/邮箱等"是否已经存在) ③ 4个js文档(点此免...

php设计模式 State (状态模式)

状态state模式是GOF23种模式中的一种,和命令模式一样,也是一种行为模式。状态模式和命令模式相当像,一样是“接口—实现类”这种模式的应用,是面向接口编程原则的体现。 状态模式属于对...

使用Zttp简化Guzzle 调用

Zttp 是 Adam Wathan 为了让代码更富表现力以及简化常见用例而写的一个 Guzzle 的封装。 这是使用 Zttp 去 Post 一个自定义头部内容请求的一个例子:...