gpt4 book ai didi

php - 在PHP 7.1中隐藏堆栈跟踪(未安装Xdebug)

转载 作者:行者123 更新时间:2023-12-03 08:48:47 25 4
gpt4 key购买 nike

我正在使用PHP 7.1和Apache 2.4在崭新的服务器上工作,并且得到了堆栈跟踪,这使查看错误所在的文件更加困难。

当我搜索此问题时,我只找到有关xdebug的注释,并且它创建了该注释,但是此服务器没有安装xdebug或启用,除非PHP 7内置在某个地方。

Fatal error:  Uncaught ArgumentCountError: Too few arguments to function Test::testing(), 
0 passed in /var/www/vhosts/test.com/httpdocs/test.php on line 15 and exactly 1
expected in /var/www/vhosts/test.com/httpdocs/test.php:7
Stack trace:
#0 /var/www/vhosts/test.com/httpdocs/test.php(15): Test::testing()
#1 {main}
thrown in /var/www/vhosts/test.com/httpdocs/test.php on line 7

有时我会很感激,但我想正常禁用它们,并在需要时启用它。我期望的是一个简单的PHP错误消息:
Parse error: syntax error, unexpected end of file in
/var/www/vhosts/test.com/httpdocs/test.php on line 51

带有类的示例代码:
class Test
{
public static function testing($var)
{
echo "tet";
}
}

Test::testing();

没有类也会发生相同的事情:
function testing($var) {
echo "tet";
}

testing();

有没有一种方法可以禁用堆栈跟踪?

最佳答案

这里的关键是Uncaught部分:

Fatal error:  Uncaught ArgumentCountError

如果捕获了它,则可以显示任何内容。因此,您可以将所有代码包装在:
try {
// your code
} catch (Throwable $e) {
echo $e->getMessage() . " in\n";
echo $e->getFile() . ' on line ' . $e->getLine() . "\n";
// echo $e->getTraceAsString();
}

关于php - 在PHP 7.1中隐藏堆栈跟踪(未安装Xdebug),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47072515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com