滚动:php 怎么抑制报错

时间:2022-11-21 09:52:29       来源:PHP中文网


(资料图)

本教程操作环境:Windows7系统、PHP8.1版、Dell G3电脑。

php 怎么抑制报错?

利用@来抑制错误

在PHP中,可以使用@运算符来抑制单个错误。例如,如果不希望PHP报告它不包括某个文件,则可以编写如下代码:

@include ("config.inc.php");
登录后复制

或者如果不希望看到“除以0”错误:

$x = 8;$y = 0;$num = @($x/$y);
登录后复制

像函数调用或数学运算一样,@符号只能处理表达式。不能在条件语句、循环语句、函数定义等之前使用@符号。

一条经验法则是,我建议将@符号用于那些执行失败时不会影响脚本整体功能的函数。或者,在你自己可以更优雅地处理PHP的错误时可以抑制错误(本章后面将讨论这个主题)。

一些开源软件中使用到@抑制错误的部分代码:

//code from phpbb3(common.php)  // If we are on PHP >= 6.0.0 we do not need some code  if (version_compare(PHP_VERSION, "6.0.0-dev", ">="))  {   /**  * @ignore  */   define("STRIP", false);  }  else  {   @set_magic_quotes_runtime(0);     // Be paranoid with passed vars   if (@ini_get("register_globals") == "1" || strtolower(@ini_get("register_globals")) == "on" || !function_exists("ini_get"))   {    deregister_globals();   }     define("STRIP", (get_magic_quotes_gpc()) ? true : false);  }    //code from phpbb3(style.php)  $dir = @opendir("{$phpbb_root_path}styles/{$theme["theme_path"]}/theme");    //code from phpbb3(adm/index.php)                      if (file_exists($phpbb_root_path . $cfg_array[$config_name]) && !@is_writable($phpbb_root_path . $cfg_array[$config_name]))                      {                          $error[] = sprintf($user->lang["DIRECTORY_NOT_WRITABLE"], $cfg_array[$config_name]);                      }    //code from phpbb3(functions.php)      if (($fh = @fopen("/dev/urandom", "rb")))      {          $random = fread($fh, $count);          fclose($fh);      }
登录后复制

推荐学习:《PHP视频教程》

以上就是php 怎么抑制报错的详细内容,更多请关注php中文网其它相关文章!

关键词: 相关文章 函数调用 不会影响