繁体   English   中英

当我使用var_dump变量调试php时,总是在开始时输出文件路径吗?

[英]When I debug php with var_dump variable it always outputs file path at the beginning?

我在PHP 7中使用Ubuntu。

PHP 7.0.5-3+donate.sury.org~xenial+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
    with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans

当我使用var_dump显示一些变量来调试PHP脚本时:

<?php
var_dump('tmp string');
var_dump(true);

以下是其输出:

/var/www/example.com/test.php:3:string 'tmp string' (length=10)
/var/www/example.com/test.php:4:boolean true

为什么总是与以前的文件路径一起输出?

我希望它输出如下:

string 'tmp string' (length=10)
boolean true

您看到的输出来自Xdebug扩展。 (不带扩展名的var_dump输出纯文本,未格式化的文本。)

从Xdebug 2.3开始,设置xdebug.overload_var_dump具有新的默认值2 ,该默认值会将文件名和行号添加到对var_dump任何调用的输出中。 有关更多信息,请参阅文档 我同意这没什么用,尤其是对于简单的输出(例如短字符串/数字)。

要删除文件名,可以在php.ini文件中将选项设置为旧值1

[xdebug]
xdebug.overload_var_dump = 1

我从关于该主题的搜索中获得了最终结果,但是我继续寻找其他替代方案,只是想补充一下我为其他人找到的内容。

从Xdebug> = 2.6版本开始,有一些选项可以修改var_dump中显示的文件名的显示。

// real output example of the %n specifier
courses_list.php:14:string 'tools' (length=5)

参考: https : //xdebug.org/docs/all_settings#filename_format

xdebug.filename_format = "[Specifier]"

类型:字符串,默认值:...%s%n,在Xdebug> = 2.6中引入

此设置确定Xdebug通过重载的xdebug_var_dump()(默认值:%f)呈现HTML堆栈跟踪中的文件名的格式(默认值:...%s%n)和位置信息。

  • 说明符:%a

    • 含义:Ancester:两个目录元素和文件名
    • 示例输出:mail / transport / mta.php
  • 说明符:%f

    • 含义:完整路径
    • 示例:/var/www/vendor/mail/transport/mta.php
    • (默认设置)
  • 说明符:%n

    • 含义:名称-仅文件名
    • 示例:mta.php
  • 说明符:%p

    • 含义父级-一个目录元素和文件名
    • 示例:transport / mta.php
  • 说明符:%s

    • 含义:目录分隔符
    • 示例:\\在Linux,OSX和其他类似Unix的系统上,/在Windows上

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM