2

对于 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 之前调用我的 pre 函数。

谢谢!

4

2 回答 2

4

print_r不返回字符串,它回显到屏幕本身(并返回 TRUE)

如果您true作为第二个参数传递,那么它将返回一个字符串。

echo '<pre>'.print_r($data, true).'</pre>';
于 2012-12-20T21:08:00.203 回答
2

您需要打印pre之前print_r()处理print_r()它自己的输出。像这样:

function pre($data) 
{
    echo '<pre>';
    print_r($data);
    echo '</pre>';
}

但是,如果您使用可选参数(指定您希望它返回输出),我不确定它是否会保留换行符。让我们看看键盘对此有什么看法

于 2012-12-20T21:07:10.863 回答