use*_*318 62 php var-dump line
当我回显var_dump($ _ variable)时,我得到一条长的包装线,包含所有的varable和值
["kt_login_user"]=> string(8) "teacher1" ["kt_login_id"]=> string(3) "973" ["kt_campusID"]=> string(4) "9088" ["kt_positionID"]=> string(1) "5"
Run Code Online (Sandbox Code Playgroud)
有没有办法让每个值都显示在自己的行上以便于阅读?像这样的东西:
["kt_login_user"]=> string(8) "teacher1"
["kt_login_id"]=> string(3) "973"
["kt_campusID"]=> string(4) "9088"
["kt_positionID"]=> string(1) "5"
Run Code Online (Sandbox Code Playgroud)
phi*_*bar 85
是的,尝试用它包装<pre>,例如:
echo '<pre>' , var_dump($variable) , '</pre>';
Run Code Online (Sandbox Code Playgroud)
Dav*_*ave 36
我通常有一个很好的函数来处理数组的输出,只是在调试时稍微调整一下.
function pr($data)
{
echo "<pre>";
print_r($data); // or var_dump($data);
echo "</pre>";
}
Run Code Online (Sandbox Code Playgroud)
然后就叫它
pr($array);
Run Code Online (Sandbox Code Playgroud)
或者,如果你有一个类似的编辑器保存片段,那么你可以更快地访问它们,而不是为你构建的每个项目或每个只需要快速测试的页面创建一个函数.
用于print_r:
echo "<pre>", print_r($data, 1), "</pre>";
Run Code Online (Sandbox Code Playgroud)
用于var_dump():
echo "<pre>", var_dump($data), "</pre>";
Run Code Online (Sandbox Code Playgroud)
我使用上面的PHP Storm.我已将其设置为prtab命令.
Mar*_*ark 14
我也研究过这个问题而没有找到正确的答案.这对我不起作用:
echo '<pre>' . var_dump($variable) . '</pre>';
Run Code Online (Sandbox Code Playgroud)
这不会为我提供一个很好的数组显示,有换行符(我使用的是Firefox 31.3.0)
然而,经过一些实验,这解决了问题(注意php首先关闭):
... ?> <pre><?php echo var_dump($variable) ?></pre> <?php ...
Run Code Online (Sandbox Code Playgroud)
这解决了这个问题,并在我的浏览器上为我显示了一个漂亮,易于阅读的数组.你看到标签没有用PHP包装; 只有echo var_dump部分是.
dm0*_*514 13
如果您安装了XDebug,则可以使用它var_dump替换它.引用:
Xdebug替换了PHP的var_dump()函数来显示变量.Xdebug的版本包含不同类型的不同颜色,并限制数组元素/对象属性的数量,最大深度和字符串长度.还有一些其他功能处理变量显示.
您可能想要调整以下几个设置:
有许多设置可以控制Xdebug修改后的var_dump()函数的输出:xdebug.var_display_max_children,xdebug.var_display_max_data和xdebug.var_display_max_depth.通过示例最好地显示这三个设置的效果.下面的脚本运行四次,每次都有不同的设置.您可以使用选项卡查看差异.
但请记住,即使刚刚加载,XDebug也会显着减慢代码速度.在生产服务器上运行是不可取的.但是,嘿,无论如何,你不是在生产服务器上进行var_dumping,不是吗?
Tie*_*eme 11
var_export会给你一个很好的输出.文档中的示例:
$a = array (1, 2, array ("a", "b", "c"));
echo '<pre>' . var_export($a, true) . '</pre>';
Run Code Online (Sandbox Code Playgroud)
将输出:
array (
0 => 1,
1 => 2,
2 =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
),
)
Run Code Online (Sandbox Code Playgroud)
Hum*_*eda 10
对我来说,正确的答案是
echo '<pre>' . var_export($var, true) . '</pre>';
Run Code Online (Sandbox Code Playgroud)
由于var_dump($var)和var_export($var)不返回字符串,您必须使用var_export($var, true)强制var_export将结果作为值返回.
小智 7
使用输出缓冲区:http://php.net/manual/de/function.ob-start.php
<?php
ob_start();
var_dump($_SERVER) ;
$dump = ob_get_contents();
ob_end_clean();
echo "<pre> $dump </pre>";
?>
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用输出缓冲并将转储中的所有换行符转换为<br>元素,例如
ob_start();
var_dump($_SERVER) ;
echo nl2br(ob_get_clean());
Run Code Online (Sandbox Code Playgroud)
我个人很喜欢Symfony 的 var dumper 组件提供的替换功能
安装并composer require symfony/var-dumper使用dump($var)
它负责其余的事情。我相信那里还注入了一些 JS,让您可以与输出进行一些交互。