对于PHP调试,我自己做了一个pre()函数:
function pre($data)
{
echo '<pre>'.print_r($data).'</pre>';
}
但它没有显示应该的换行符。例如,我将所有这些都放在一行:
Template_model Object ( [id] => 1 [type] => 1 [shortname] => default [is_custom] => 0 [is_open] => 1 [options] => Array ( [id] => 1 [name] => background_color [value] => #6699CC [type] => 0 [campaign_id] => 8 [user_id] => 11 [template_id] => 1 ) )
某些部分应该有换行符。我做错了什么?
这可能听起来很新鲜,但是当我多年来使用它时,我无法理解我做错了什么。
请不要在页面上显示任何其他HTML之前调用我的预功能。
谢谢!
答案 0 :(得分:4)
print_r
不返回字符串,它回显到屏幕本身(并返回TRUE)
如果您将true
作为第二个参数传递,那么它将返回一个字符串。
echo '<pre>'.print_r($data, true).'</pre>';
答案 1 :(得分:2)
您需要在pre
之前打印print_r()
,print_r()
处理自己的输出。像这样:
function pre($data)
{
echo '<pre>';
print_r($data);
echo '</pre>';
}
但是,如果您使用可选参数(指定您希望它返回输出),我不确定它是否会保留换行符。我们来看看what codepad has to say about it。