在程序开发过程中;
打印数据进行查看调试是非常频繁的;
如果没有一种易于阅读的样式那是相当痛苦的;
先定义一个数组;
$array=array(
't0'=>'test0',
't1'=>'test1',
't3'=>array(
'tt0'=>'test0',
'tt1'=>'test1',
'tt3'=>'test3',
)
);
如果用php系统函数print_r 或者 var_dump 打印出来的效果是这样的;
print_r($array);
我想除了超神级别的眼力;
一般人是很难阅读的;
还好thinkphp为我们准备了一个靠谱点的dump函数;
效果是这样的:
dump($array);
dump临时用来打印小数组还可以凑合;
如果打印一个结构复杂的数组;
这种样式依然不够直观;
而且;对于php这种弱类型语言来说;
数组元素的类型以及长度很多时候并没有那么重要;
都展示出来;太乱了;
于是手写一个p函数,效果是这样的;
function p($data){
echo '<hr><pre>'.print_r($data,true).'<pre><hr>';
}
p($array);
怎么样;
世界瞬间干净整洁了吧;
之所以加上2个 <hr>
标签;
主要是为了同时p多个数组时,
有个横线来分界;
在相当长一段时间内都是使用这样一个简陋的函数;
直到有一天发现了 bootstrap 对 <pre>
的样式定义;
于是p函数就 升级为了这个样子;
效果是这样的:
//传递数据以易于阅读的样式格式化后输出
function p($data){
// 定义样式
$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;">';
// 如果是boolean或者null直接显示文字;否则print
if (is_bool($data)) {
$show_data=$data ? 'true' : 'false';
}elseif (is_null($data)) {
$show_data='null';
}else{
$show_data=print_r($data,true);
}
$str.=$show_data;
$str.='</pre>';
echo $str;
}
p($array);
再次深深感谢bootstrap;
———————分——————割——————线———————————
很久很久以后;
针对 laravel 推荐使用我的扩展包来打印数据;
开源项目系列之laravel-print以简洁的方式打印数据
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客https://baijunyao.com 欢迎捐赠赞赏加入组织创建QQ群及捐赠渠道
花开了 :不错
2019-07-02 17:29:41 回复
五儿 :已经稍作修改为自己的专用调试函数,勿念,爱你,要给你生猴子,我就看你什么时候联系我
2017-08-17 16:04:39 回复
云淡风晴 :小孟童鞋别调皮;别想着掰弯我了;
2017-08-21 00:24:33 回复
jinye30 :应该安放在那个 controller 比较合适
2017-07-05 14:20:02 回复
遥远的她 :
2017-05-06 14:04:06 回复
xuli :厉害厉害
2017-01-12 13:20:52 回复
遥远的她 :是的
2017-05-06 14:00:44 回复
生如夏花 :厉害
2017-09-13 09:19:07 回复
生如夏花 :不错
2017-09-13 09:19:18 回复
生如夏花 :可以
2017-09-13 09:19:28 回复
生如夏花 :666
2017-09-13 09:19:44 回复
xuli :你也666
2017-09-13 09:20:43 回复
钟 :非常好 ····谢谢···
2016-05-15 22:06:26 回复
最新评论