我看了php.net的手册,并看到了一些例子,当使用var_dump和其他命令时,请参见例子。
所有示例都使用pre样式排序。
但是在我自己的服务器上,我看到同样的例子只有一行
var_dump($a);
在手册上见->
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
在我的服务器上我看到:
array(3) {[0]=>int(1) [1]=>int(2) [2]=>array(3) {[0]=>string(1) "a" [1]=>string(1) "b" [2]=>string(1) "c"}}
我认为这是一个运行时选项,我可以改变,但我不确定。那么我怎样才能得到与手册中相同格式的输出呢?
您可能正在寻找pre
标记,它将为您提供格式化的输出。在使用var_dump();
之前打印它,例如
echo "<pre>";
var_dump($arr);
echo "</pre>";
输入/输出示例:
$arr = [1, 2, 3];
with pre
tag:
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
不带pre
标签:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
我为这个例子创建了这个函数。
function echo_array($array,$name = '')
{
$debug = debug_backtrace();
$file = $debug[0]['file'];
$line = $debug[0]['line'];
$array = "<pre>".print_r($array,true)."</pre>";
?>
<table cellpadding="0" cellspacing="0" width="100%" style="background-color:white;">
<tr>
<td align="left">
<fieldset>
<legend>
<?=$name?> in: <?=$file?>:<?=$line?>
</legend>
<?=$array?>
</fieldset>
</td>
</tr>
</table>
<?
}
使用print_r()
,你可以传递数组,第二个参数说它应该返回而不是打印出来。
我使用调试信息来获取这个函数被调用的位置,因为有时我有很多这样的信息,这可能会让人感到困惑。您还可以为它设置一个名称,以确定回显的内容;)