调试代码之 dd VS var_dump VS print_r ?
在浏览器中显示变量查找错误,是在 PHP 中最流行的调试方式之一。Laravel 为显示变量提供了 辅助函数 dd()
,这代表「Dump and Die」,我基本上都在用这个,可是时常也会觉得很不方便。
首先,我们先看看 dd()
有什么问题?比如我们想从 DB 表中获取内容并打印它们:
$comment = TicketComment::take(10)->all();
dd($comment);
然后你会先看到这个:
点击展开来:
再展开其中一个:
如果你想看到属性值(attributes)或者原始值(original)的时候,你还得在点击一次才能看到。没错,这个过程我们一共用鼠标点击了三次~
var_dump() and die()
传统 PHP 打印任何类型的数据是这样的:
$comment = TicketComment::take(10)->get();
var_dump($comment);
die();
显示出来是这样的:
可是这样的方法看上去并不是很直观,不是么?
print_r()
PHP 内置函数 print_r 的描述是「打印关于变量的易于理解的信息」,所以我们试一下这种:
$comment = TicketComment::take(10)->get();
print_r($comment);
die();
然后你看到的就会是这样
都挤在一堆了这怎么看呢?我的一个同事教我在程序中加入 echo "<pre>";
$comment = TicketComment::take(10)->get();
echo "<pre>";
print_r($comment);
die();
好让它看上去能这样:
但这样的方法,我还是很嫌弃。我尝试用过 Kint 来调试,但,其实也不怎么方便。
所以敢问大伙儿,你们平时都是怎么调试的?
推荐文章: