为了禁用PHP警告,您需要在php.ini中设置以下参数
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = On或
display_errors = Off上面的方法将禁用整个项目的警告。是否有一种方法可以使仅对php代码块禁用警告,即禁用某些函数的警告或少数几行代码?
发布于 2017-08-14 10:10:28
是但是..。
理想情况下,您可能希望修复这些错误(或者至少以正确的方式处理这些错误),因为这似乎是错误的设计,但是您要寻找的是错误控制操作符(@)。
<?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,等等。
注意..。
警告:当前,"@“错误控制操作符前缀甚至将禁用对终止脚本执行的关键错误的错误报告。除其他外,这意味着如果您使用"@“来抑制来自某个函数的错误,并且它不是不可用的,或者是被错误键入的,那么脚本就会在没有说明原因的情况下就死在那里。
发布于 2017-08-14 10:20:19
首先,抑制E_DEPRECATED和E_STRICT似乎不是一个很好的解决方案-下一个PHP升级会破坏您的代码。应用这应该仅仅是一个时间修复,直到您修复错误。
您有多个选项来抑制错误/警告。
$content = @file_get_contents('some-url-which-is-maybe-not-available..');error_reporting恢复它。这样做就像设置其他ini值一样。一个例子就是
$oldlevel = error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);
// some code ...
// revert it
error_reporting($oldlevel);您应该记住,不能删除几行文件的编译时/解析器错误/警告。如果在包含错误级别之前更改了错误级别,则只能将其应用于整个文件。
https://stackoverflow.com/questions/45672160
复制相似问题