PHP:格式化JSON为PHP语法格式

  1. 原生函数
php 复制代码
$arr = [1,2,3,4];
$str = var_export($a,true);
var_dump($str);
  1. 自定义方法
php 复制代码
class Export{
  private static $space;
  private static function do($a, string $prev){
    $res = '';
    $next = $prev . self::$space;
    if (is_array($a)) {
      $res .= '[';
      foreach ($a as $k => $v)  if (is_int($k)) {
        $res .= $next . self::do($v, $next) . ',';
      } else {
        $res .= $next . self::do($k, $next) . ' => ' . self::do($v, $next) . ',';
      }
      return $res . $prev . ']';
    } else if (is_scalar($a)) {
      return is_string($a) ? '\'' . str_replace('\'', '\\\'', $a) . '\'' : json_encode($a);
    } else return 'NULL';
  }
  public static function to($a, int $space_len = 2){
    self::$space = str_repeat(' ', max($space_len, 2));
    return self::do($a, PHP_EOL);
  }
}

// $str = Export::to(转化的数据);
// var_dump($str);
相关推荐
张np1 小时前
java基础-ArrayList
java·开发语言
zmzb01031 小时前
C++课后习题训练记录Day42
开发语言·c++·算法
不会编程的小寒1 小时前
C / C++ 面试题
java·开发语言
坐吃山猪1 小时前
Electron02-Hello
开发语言·javascript·ecmascript
Mr Lee_1 小时前
Smali 文件生成dex装箱算法整合
开发语言·python·算法
姓刘的哦2 小时前
RK3568开发板运行Qt
开发语言·qt
刘晓倩2 小时前
Python3的Sequence
开发语言·python
消失的旧时光-19432 小时前
彻底理解 synchronized:实例锁、类锁与自定义锁的原理和最佳实践
java·开发语言
45288655上山打老虎2 小时前
【智能指针】
开发语言·c++·算法
蜗牛攻城狮2 小时前
JavaScript 尾递归(Tail Recursion)详解
开发语言·javascript·ecmascript