PHP - 禁用单行警告

时间:2014-02-23 21:44:59

标签: php error-handling

我的论坛中有一个插件会发出警告 我想解决问题,但首先,我想隐藏警告消息给用户。

我知道我可以在全球范围内进行更改,但我只想为某些线路进行更改。

我该怎么做?

$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());

给出错误:

Warnung: Assigning the return value of new by reference is deprecated in ..../includes/garage_func_var.php (Zeile 6411)

我已经知道我需要使用@但我该把它放在哪里?

2 个答案:

答案 0 :(得分:4)

@可用于抑制警告,通知和错误。

  

致命错误会在PHP 7中显示,从而破坏脚本。

@可以在变量,函数,包含调用,常量等之前使用,但不能在函数或类定义,条件,循环等之前使用。
例如,要隐藏未定义的属性错误:

Class Cars{
}
$obj = new Cars();
echo @$obj->idontexist;

关于你的具体问题:

@$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());

应该修理它。

虽然在PHP 5中显示了上述不推荐使用的警告消息,但由于在升级过程中不推荐使用,因此将在PHP 7中显示以下内容。

  

PHP 7注意:

     

解析错误:语法错误,意外'新' (T_NEW)

答案 1 :(得分:0)

仅将@用作绝对不得已的方法。使用@会被认为是不好的编码,因为@会减慢速度,而且将来在尝试调试时也会给程序员(包括您自己)带来麻烦。这真的让人皱眉。

您应该:

仅使用set_ini函数隐藏该调用的警告

在php中使用“ try”来管理错误。