首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅对部分代码禁用PHP警告

问仅对部分代码禁用PHP警告
EN

Stack Overflow用户
提问于 2017-08-14 10:09:17
回答 2查看 7.2K关注 0票数 4

为了禁用PHP警告,您需要在php.ini中设置以下参数

代码语言:javascript
复制
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = On

或

代码语言:javascript
复制
display_errors = Off

上面的方法将禁用整个项目的警告。是否有一种方法可以使仅对php代码块禁用警告,即禁用某些函数的警告或少数几行代码?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-14 10:10:28

是但是..。

理想情况下,您可能希望修复这些错误(或者至少以正确的方式处理这些错误),因为这似乎是错误的设计,但是您要寻找的是错误控制操作符(@)。

代码语言:javascript
复制
<?php
/* Intentional file error */
$my_file = @file('non_existent_file') or die("Failed opening file: error was '$php_errormsg'");

// this works for any expression, not just functions:
$value = @$cache[$key];
// will not issue a notice if the index $key doesn't exist.
?>

注意:@-运算符只对表达式起作用。一个简单的经验法则是:如果你能得到某物的价值,你可以在它前面加上@运算符。例如,您可以将其添加到变量、函数和包含调用、常量等。您不能将其用于函数或类定义,或条件结构,如if和foreach,等等。

注意..。

警告:当前,"@“错误控制操作符前缀甚至将禁用对终止脚本执行的关键错误的错误报告。除其他外,这意味着如果您使用"@“来抑制来自某个函数的错误,并且它不是不可用的,或者是被错误键入的,那么脚本就会在没有说明原因的情况下就死在那里。

票数 12
EN

Stack Overflow用户

发布于 2017-08-14 10:20:19

首先,抑制E_DEPRECATED和E_STRICT似乎不是一个很好的解决方案-下一个PHP升级会破坏您的代码。应用这应该仅仅是一个时间修复,直到您修复错误。

您有多个选项来抑制错误/警告。

  1. 使用-operator抑制单个语句的错误。可以像这样使用:$content = @file_get_contents('some-url-which-is-maybe-not-available..');
  2. 抑制错误,直到您想要用error_reporting恢复它。这样做就像设置其他ini值一样。

一个例子就是

代码语言:javascript
复制
$oldlevel = error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);
// some code ...
// revert it
error_reporting($oldlevel);

您应该记住,不能删除几行文件的编译时/解析器错误/警告。如果在包含错误级别之前更改了错误级别,则只能将其应用于整个文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45672160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档