PHP控制运算符(@)不起作用

时间:2013-10-12 21:32:45

标签: php operators

control operator用于使所有警告/错误无声,无论后果如何。我想使用这个疯狂的工具,但我想我有一些奇怪的服务器配置 - 即使我将@添加到一个函数,它仍然会引发警告/错误:

$ php -a
Interactive shell

php > $f = @file('juzio');
PHP Warning:  file(juzio): failed to open stream: No such file or directory in php shell code on line 1
PHP Stack trace:
PHP   1. {main}() php shell code:0
PHP   2. file() php shell code:1

我一直在努力寻找一个对此负责的设置,但到目前为止一无所获。谁知道为什么@不适合我?为了以防万一,我正在使用Suhosin-Patch运行PHP 5.3.6-13ubuntu3.10。我也安装了xdebug(以防万一)。


编辑:请不要写error_reporting。我的问题是关于@运算符。感谢。

1 个答案:

答案 0 :(得分:4)

scream.enabled配置文件中的php.ini指令将禁用错误抑制运算符(@)的效果:

引用manual

  

scream扩展可以禁用静默错误控制操作符,以便报告所有错误。此功能由ini设置控制。

请参阅documentation中的示例,了解它如何影响错误报告。

禁用scream可以解决问题。

更改php.ini中的指令,如下所示:

scream.enabled = 0

如果要在运行时禁用它,则可以按照手册中的说明使用ini_set

ini_set('scream.enabled', false);