人类阅读的优越方式打印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);
感谢大家阅读到这里~~~
作者:子钦加油
出处:https://www.cnblogs.com/zmdComeOn/
个性签名:努力生活,努力走路
阿里云拼团:https://www.aliyun.com/1111/home?userCode=f4ee1llo1核2G1M,86一年,229三年;2核4G5M,799三年;2核8G5M,1399三年
腾讯云三月采购计划特价:https://cloud.tencent.com/act/cps/redirect?redirect=1073&cps_key=15d0b1673287c43fe946626d9f4e2eee&from=console1核2G1M,88一年;1核2G1M,268三年;2核4G5M,998一年;4核8G5M,2888元三年
出处:https://www.cnblogs.com/zmdComeOn/
个性签名:努力生活,努力走路
阿里云拼团:https://www.aliyun.com/1111/home?userCode=f4ee1llo1核2G1M,86一年,229三年;2核4G5M,799三年;2核8G5M,1399三年
腾讯云三月采购计划特价:https://cloud.tencent.com/act/cps/redirect?redirect=1073&cps_key=15d0b1673287c43fe946626d9f4e2eee&from=console1核2G1M,88一年;1核2G1M,268三年;2核4G5M,998一年;4核8G5M,2888元三年