• 人类阅读的优越方式打印php数组


    在程序开发过程中;
    打印数据进行查看调试是非常频繁的;
    如果没有一种易于阅读的样式那是相当痛苦的;
    先定义一个数组;

    $array=array(
        't0'=>'test0',
        't1'=>'test1',
        't3'=>array(
            'tt0'=>'test0',
            'tt1'=>'test1',
            'tt3'=>'test3',
            )
        );

    如果用php系统函数print_r 或者 var_dump 打印出来的效果是这样的;

    1 print_r($array);

    我想除了超神级别的眼力;
    一般人是很难阅读的;
    还好thinkphp为我们准备了一个靠谱点的dump函数;
    效果是这样的:

    1 dump($array);

    dump临时用来打印小数组还可以凑合;
    如果打印一个结构复杂的数组;
    这种样式依然不够直观;
    而且;对于php这种弱类型语言来说;
    数组元素的类型以及长度很多时候并没有那么重要;
    都展示出来;太乱了;
    于是手写一个p函数,效果是这样的;

    1 function p($data){
    2     echo '<hr><pre>'.print_r($data,true).'<pre><hr>';
    3 }
    4 p($array);

    怎么样;
    世界瞬间干净整洁了吧;
    之所以加上2个 <hr> 标签;
    主要是为了同时p多个数组时,
    有个横线来分界;
    在相当长一段时间内都是使用这样一个简陋的函数;
    直到有一天发现了 bootstrap 对 <pre> 的样式定义;
    于是p函数就 升级为了这个样子;
    效果是这样的:

     1 //传递数据以易于阅读的样式格式化后输出
     2 function p($data){
     3     // 定义样式
     4     $str='<pre style="display: block;padding: 9.5px;margin: 44px 0 0 0;font-size: 13px;line-height: 1.42857;color: #333;word-break: break-all;word-wrap: break-word;background-color: #F5F5F5;border: 1px solid #CCC;border-radius: 4px;">';
     5     // 如果是boolean或者null直接显示文字;否则print
     6     if (is_bool($data)) {
     7         $show_data=$data ? 'true' : 'false';
     8     }elseif (is_null($data)) {
     9         $show_data='null';
    10     }else{
    11         $show_data=print_r($data,true);
    12     }
    13     $str.=$show_data;
    14     $str.='</pre>';
    15     echo $str;
    16 }
    17 p($array);

    感谢大家阅读到这里~~~

  • 相关阅读:
    jdb应用 远程调试
    maven POM总结
    jvm
    jdbc取出表名 名称
    nginx配置openssl证书
    DNS A记录 CNAME NS记录等的区别
    linux文件目录类命令|--cd指令
    linux文件目录类命令--ls命令
    linux文件目录类命令--pwd命令
    linux 帮助指令
  • 原文地址:https://www.cnblogs.com/zmdComeOn/p/9617538.html
Copyright © 2020-2023  润新知