2016-03-03 54 views
0

我在OS X El Capitan上运行PHP 7.0.2,并且每次执行包含一些错误代码的PHP脚本时,它都会报告错误,然后似乎执行回溯自动。我不太确定这是否是PHP 7中的一项新功能,但我似乎无法找到任何地方或任何面临类似问题的其他人。PHP 7.0.2对错误执行回溯

例如:如果从CLI执行

<?php 
    echo $a; 
?> 

将返回以下输出:

PHP Notice: Undefined variable: a in /Path/to/file.php on line 2 
PHP Stack trace: 
PHP 1. {main}() /Path/to/file.php:0 

Notice: Undefined variable: a in /Path/to/file.php on line 2 

Call Stack: 
    0.0002  350944 1. {main}() /Path/to/file.php:0 

上什么可能导致该问题的任何见解是值得欢迎的。 谢谢。

+0

这是一个怎样的问题?我在电脑上获得了与PHP 5.6.10相同的信息。 PHP7可能已经改进了一点,但并不新鲜。这是一件好事! – jszobody

+0

jszobody我想禁用它的主要原因是因为我试图从PHP 5.6迁移一个相当大的项目,并且大量的PHP Stack Trace语句似乎泛滥我的终端,使得通过比较来筛选非常困难这对我来说是正常的活动。我想一个更好的问题是,有没有办法禁用它? –

+0

当然。看看http://php.net/manual/en/function.error-reporting.php。您最想禁用通知。可能也是严格的。 – jszobody

回答

1

我面临的问题不是PHP 7.0.2本身,而是一个扩展,它已经被启用,称为XDebug。用于高级错误报告的XDebug在我的另一个项目中导致问题并禁用它,它似乎解决了我的问题。为了禁用XDebug,您只需修改php.ini文件并将值debug.remote_autostart,debug.default_enable和debug.remote_enable从'on'更改为'off'。

+0

这太糟糕了,你必须禁用XDebug。我无法想象在我的开发者服务器上没有它的生活! – BillK

0

xdebug.default_enable=0添加到php.ini将阻止XDebug在不放弃分析和调试功能的情况下发送堆栈跟踪。