在php中禁用显示错误并仅显示触发错误

时间:2014-01-17 06:47:01

标签: php

如何在php中只显示trigger_error

我正在使用此代码

ini_set('display_errors', 1);
$divisor = 5/0;
//echo $divisor;
if ($divisor == 0) {
  echo    trigger_error("Cannot divide by zero", E_USER_ERROR);
}

现在这段代码的输出是

Warning: Division by zero 
Fatal error: Cannot divide by zero 

但是我想只显示我们自己的触发器错误,并且不想显示php错误我该怎么做呢。感谢

2 个答案:

答案 0 :(得分:1)

调用error_reporting(0)以禁用输出中的错误。如果已配置,它们仍将显示在error.log中。

如果需要,请检查http://www.php.net/manual/en/function.error-reporting.php以获取更多参数以显示不同级别的错误。

更新

error_reporting(0);
$divisor = 5/0;
//echo $divisor;
if ($divisor == 0) {
  error_reporting(E_ALL);
  echo    trigger_error("Cannot divide by zero", E_USER_ERROR);
  error_reporting(0);
}

答案 1 :(得分:1)

第一个警告Warning: Division by zero发生在第$divisor = 5/0;行 所以,用try catch环绕

try{
    $divisor = 5/0;
}
catch(Exception $e)
{
    echo  "Cannot divide by zero".$e;
}

如果您不想使用try/catch,请使用die。如果您只想显示自己的错误消息,请使用

$divisor = 5/0 or die ("Cannot divide by zero");

如果您想使用trigger_error,那么

$divisor = 5/0 or die trigger_error("Cannot divide by zero", E_USER_ERROR);