2017-06-15 32 views
-1

我最近使用新的PHP版本切换主机。我从插件(日历)得到一个错误,它不会消失。这是导致0问题的非静态方法错误,如果不尝试使用其他插件,则无法修复它。我现在只需要它就消失了,所以这个丑陋的消息不会显示在每个页面上,我会在稍后进行调试。我试过禁用错误,将每个调试设置都设置为0,但这个错误信息不会消失!它向每个人展示。我错过了什么设置?在ExpressionEngine中隐藏PHP错误

我已经设置在index.php调试= 0

我已经设置的config.php $配置[ '调试'] = 0;

我在的display_errors额外的ini_set添加和使用error_reporting 0

我仔细检查过,在配置文件编辑和输出和调试页面设置中显示0

为什么不是活得t这些设置有效吗?我使用EE 2.5.5

+0

你在'php.ini'中设置了什么'error_reporting' – RiggsFolly

+0

看起来像是22527.并且display_errors被设置为off。我有error_reporting(0);和ini_set('display_errors',0);在index.php和config.php文件中 – Regnant

+0

不是很有帮助:我曾经与ExpressionEngine一起工作过,而且我可怜你。快速谷歌:如果登录用户在超级管理员组中,ExpressionEngine将只向浏览器报告PHP错误。你是否也看到这些错误不是超级管理员? – Rienk

回答

0

你所寻找的是错误抑制,你可以找到更多的信息就可以了here
代码示例

class foo { 
    public function bar() { 
     echo 1; 
    } 
} 
foo::bar(); // Strict standards: Non-static method foo::bar() should not be called statically 
@foo::bar(); // no warning 

@符号将抑制导致任何错误打屁股。

+0

这是怎么回事一个非静态方法错误 – RiggsFolly

+0

真的没有一个地方让我把这个我认为?正如RiggsFolly所说,由于新版本的PHP版本,这是一个非静态方法错误。 – Regnant

+0

好吧,我会假设它不会造成致命错误,只是发出警告。如果您在调用之前添加@,则应该从超出范围的方法中禁止显示警告。我已经更新了我的答案以反映,我可能会误解这个问题:/ –