• 导出php5.4支持的数组格式,即以[]为标识符而不是以array()标识


    //导出php数组,以[]为标识符而不是以array()
    if (!function_exists('varExport')) {
        //导出php数组,以[]为标识符而不是以array()
        function varExport($var)
        {
            echo '<meta charset="utf-8" />';
            $traces = debug_backtrace();
            $varNames = [];
            foreach ($traces as $trace) {
                if (isset($trace['function']) && in_array($trace['function'], array('varExport'))) {
                    echo $trace['file'] . ':' . $trace['line'] . "
    ";
                    if (file_exists($trace['file'])) {
                        $vars = file($trace['file'])[$trace['line']-1];
                        preg_match('/varExport(([$w, ]+))/i', $vars, $matches);
                        $varNames = !empty($matches[1]) ? explode(',', $matches[1]) : [];
                    }
                    break;
                }
            }
            $exporter = function ($var, $indent = "") use (&$exporter) {
                switch (gettype($var)) {
                    case "string":
                        return '"' . addcslashes($var, "\$"
    	vf") . '"';
                    case "array":
                        $self = $exporter;
                        $indexed = array_keys($var) === range(0, count($var) - 1);
                        $r = [];
                        foreach ($var as $key => $value) {
                            $r[] = "$indent    "
                                . ($indexed ? "" : $self($key) . " => ")
                                . $self($value, "$indent    ");
                        }
                        return "[
    " . implode(",
    ", $r) . "
    " . $indent . "]";
                    case "boolean":
                        return $var ? "TRUE" : "FALSE";
                    default:
                        return var_export($var, true);
                }
            };
            echo '<pre>';
            array_map(function ($var, $varName) use ($exporter) {
                $varName = !empty($varName) ? trim($varName) . ' = ' : '';
                $endChar = !empty($varName) ? ';' : '';
                echo $varName . $exporter($var) . $endChar . "
    ";
            }, func_get_args(), $varNames);
            echo '</pre>';
        }
    }

    代码输出:

    /data1/www/xxxxx/XxxxController.php:265
    $channelList = [
        [
            "iChannelID" => "",
            "sChannelName" => "全部"
        ],
        [
            "iChannelID" => 1,
            "sChannelName" => "腾讯"
        ],
        [
            "iChannelID" => 2,
            "sChannelName" => "淘宝"
        ],
        [
            "iChannelID" => 3,
            "sChannelName" => "百度"
        ]
    ];
  • 相关阅读:
    docker
    redis 3.2.6 on ubuntu 14.04
    go异常处理
    go语言的命令行库
    iptables
    nsq
    etcd-v2第一集
    rabbitmq, windows/linux, c/c++/node.js/golang/dotnet
    zeromq:c,c++,golang及nodejs使用
    golang下的grpc
  • 原文地址:https://www.cnblogs.com/wish123/p/6830420.html
Copyright © 2020-2023  润新知