如何禁用E_STRICT

时间:2010-05-17 16:50:40

标签: php

我需要关闭E_STRICT。我有error_reporting = E_ALL& 〜我的php.ini中的E_STRICT但似乎被忽略了。我在我的代码中试过这个:

ini_set('error_reporting', E_NOTICE);

没有!

请帮忙。

5 个答案:

答案 0 :(得分:9)

试试这个。

error_reporting(E_ALL ^ E_STRICT);

这将报告除E_STRICT

以外的所有错误

答案 1 :(得分:5)

如果您有自己的错误处理程序(搜索代码set_error_handler),那么error_reporting配置值将被忽略:

  

重要的是要记住,对于error_types指定的错误类型,标准PHP错误处理程序是完全被绕过的,除非回调函数返回FALSE。 error_reporting()设置无效,无论如何都会调用错误处理程序 - 但是您仍然可以读取error_reporting的当前值并采取相应的操作。特别值得注意的是,如果导致错误的语句由@ error-control运算符预先添加,则此值将为0。

http://php.net/manual/en/function.set-error-handler.php

如果在调用E_STRICT(或error_reporting)的同一文件中发生错误,同时从error_reporting(...)配置中删除ini_set('error_reporting, ...')可能会失败。

答案 2 :(得分:2)

你提到你正在使用一个框架(很高兴知道哪一个),无论如何你可以在第一个index.php上添加这样的东西:

error_reporting(E_ERROR | E_WARNING | E_PARSE);
ini_set('display_errors', 'On');

但是请确保你在第一个被调用的index.php上,这意味着堆栈中的第一个,对于某些可以节省一些痛苦的框架。

其他事情:大多数框架都有自己的配置文件来解决生产软件VS.开发软件,他们有自己的做事方式,所以我会从那里开始....看看文档,看看是否有任何你需要改变...它可能是一个超级简单的改变最有可能的配置文件。

答案 3 :(得分:1)

当我遇到错误时,我正在安装CMS简单但是这就是我的结果:

1)使用您喜欢的任何编辑器打开您的php.ini文件;记事本,记事本++或Dreamweaver。

2)按ctrl + f启动查找对话框。

3)键入E_STRICT并单击确定跳转到E_STRICT线,有几个E_STRICT Stuff但是找一个这种设置;

共同价值观:

E_ALL & ~E_NOTICE  (Show all errors, except for notices and coding standards warnings.)
   E_ALL & ~E_NOTICE | E_STRICT  (Show all errors, except for notices)
   E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR  (Show only errors)
   E_ALL | E_STRICT  (Show all errors, warnings and notices including coding standards.)
 Default Value: E_ALL & ~E_NOTICE
 Development Value: E_ALL | E_STRICT
 Production Value: E_ALL & ~E_DEPRECATED
 http://php.net/error-reporting

error_reporting = E_ALL ,此处的值为";"是重要的,所以我把它清除了:

error_reporting =(删除)并删除了 E_ALL ,并保存了文件,我重新启动了所有服务,一切正常。 希望对你也有用!。

答案 4 :(得分:-2)

error_reporting(E_ALL & ~E_STRICT);