我很清楚error_reporting(0);
& ini_set('display_errors', "Off");
使错误消息消失。
执行此操作的适当方法是什么 - 仅针对特定文件或部分代码? @s的压力错误似乎是一个坏主意,因为它显然减慢了代码的速度......
原因?我们在开发局域网中有许多memcached服务器由于网络设置而真的不可靠,因此我们每小时都会多次收到错误,除了停止使用内存缓存或关闭整个应用程序的错误外,我们无能为力,这将让我们头疼 - 在开发阶段的中间:)
答案 0 :(得分:11)
<?php
// normal code
// error_reporting returns the old error code
$old_error_reporting = error_reporting(0);
// your errorful code
// reset error_reporting to its old value
error_reporting($old_error_reporting);
// normal code
尽管修复实际导致错误的内容是个好主意。
答案 1 :(得分:3)
你有点回答了自己的问题。要为特定文件执行此操作,error_reporting(0);将关闭错误。我想你也可以在脚本中多次调用它。
您还可以使用php异常来“捕获”代码块上的错误。例如:
try {
// code to ignore errors for here
} catch {
// you can output a custom error here, but putting nothing here will effectively mean errors are ignored for the try block
}
脚本将继续运行通过try块,即使其中存在错误。有关详细信息,请参阅PHP Manual Entry。
答案 2 :(得分:1)
您可以在运行时更改错误报告级别:
<?
error_reporting(E_ALL);
... some code ....
error_reporting(0);
... some more code ....
error_reporting(E_ALL);
我不知道别的办法,但我想不出这种情况还不够的情况。你能吗?
答案 3 :(得分:0)
那是很久以前的事了,但像我这样的人可能会使用我的答案。
当我需要做这种事情的时候,我只是在变量前加上@,以便不显示来自这个变量的错误。
示例:
switch(@$var!="e") {
....
}