[英]Hide Stack trace in PHP 7.1 (Xdebug NOT installed)
我正在使用PHP 7.1和Apache 2.4在嶄新的服務器上工作,並且獲得了Stack trace ,這使得查看錯誤所在的文件更加困難。
當我搜索此問題時,我只能找到有關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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.