PHP有用于print_r或var_dump的接口吗?

3

PHP内置了许多方便的接口,用于处理不同函数的使用。我想知道,是否有一个接口来处理print_rvar_dump的输出?

如果没有,是否有另一个函数或/和接口用于显示类中的结构化数据(除了__toString)?


3
print_rvar_dump都旨在揭示对象的原始结构,因此没有接口钩子可以覆盖它们。最接近的可能是JsonSerializable; 但仍需要自定义输出方法。 - mario
你是在询问以结构化方式显示print_r吗? - William Francis Gomes
@WilliamFrancisGomes 是的。 @mario “最接近的可能是JsonSerializable; 但你仍然需要一个定制的输出方法。” 这似乎值得一试。谢谢! - volter9
你可以尝试添加HTML标签<pre>。就像这样:echo '<pre>'; print_r($array); echo '</pre>'; - William Francis Gomes
2个回答

2

PHP 5.6.0 版本新增了 __debugInfo() 方法。它不是一个接口,而是可在任何对象上定义的方法。通过添加此方法来设置 var_dump 的结果。


0

如果您使用print_r,然后将输出复制并粘贴到数组美化器(谷歌一下)中,它会生成一个漂亮易读的输出。这是在PHP中检查数组数据的最简单方法,而无需付出大量工作。我一直都在使用它 :)

祝你好运!


1
使用调试器并设置断点会更加容易和安全,因为您不需要修改代码就可以得到结果。 - Bart
假设我们在谈论调试器不可用的情况下,否则为什么会问这个问题,但是提出了一个好观点。 - LukeLad
@Bart 我昨天尝试了使用MacGDBp.app和XDebug,但是断点对我来说没有起作用 :( 我的意思是,它们真的没有起作用 - volter9
@LukeLad 那不是一个真正的解决方案。 - volter9
@Bart 更新:实际上我已经可以使用断点使MacGDBp.app工作了。 - volter9
这不是一个答案,它是一条评论。 - sectus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接