我通常使用var_dump()
来转储我的数组的内容,以便评估结构。然而,这变得乏味,因为更大的转储,信息遍布我的23英寸屏幕,因此很难轻易找出哪些关键匹配哪个值。
无论如何都要将数组的内容垂直转储,类似于PHP手册使用的方式:
Array
(
[a] => apple
[b] => banana
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)
我真的很想知道,因为这会节省很多时间。
任何意见/建议/答案将不胜感激;)!!
答案 0 :(得分:6)
如果你想要一个非古老的调试,var_dump,echo和其他内联数据显示不是最好的方法,xdebug和支持调试的IDE(netbeans,eclipse,aptana,...)是
但是,通过在它之前回显pre标记,可以大大提高var_dump的可读性:
function dump($var)
{
echo '<pre>';
var_dump($var);
echo '</pre>';
}
(请注意,您可以通过显示页面的来源而不是html呈现来获得相同类型的结果)
答案 1 :(得分:1)
就个人而言,我使用自定义debug()函数和<pre>
:
function debug($val) {
if (defined('DEBUG') && DEBUG) { // So debugging won't show on live.
// Turn off debugs via debug=0 in url.
if(!@$_REQUEST['debug'] && @$_REQUEST['debug'] !== 0){ // Can see a clean page by again by just appending a url parameter.
$vals = func_get_args();
foreach($vals as $val){
echo "<pre class='debug' style='font-weight:bold;font-size:1.1em;background-color:white;color:black;position:relative;z-index:10;clear:both;max-width:980px;overflow:auto'>";
var_dump($val);
echo "</pre>";
}
}
}
}
您可能还想查看http://xdebug.org/ Xdebug,它会格式化var_dumps以供html查看。我过去也曾经使用过它。
答案 2 :(得分:0)
浏览器中的“查看来源” 或
echo '<pre>'; var_dump($var); echo '</pre>';
答案 3 :(得分:0)
问题是PHP使用换行符而不是'br'元素格式化数组。由于默认Content-type
为text/html
,浏览器会忽略换行符,因此您看不到它们。
有两种解决方案:
将内容类型设置为text/plain
:
header('Content-type: text/plain');
var_dump($some_array);
答案 4 :(得分:0)
echo '<pre>'.print_r($myValue, true).'</pre>';
答案 5 :(得分:0)
此外,可以安装FirePHP并将调试信息发送到浏览器中的firebug,如下所示:FB::log('Log message');
答案 6 :(得分:0)
Xdebug可以用格式良好/着色的HTML替换var_dump()的纯文本输出。见http://xdebug.org/docs/display