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
。我的问题是关于@
运算符。感谢。
答案 0 :(得分:4)
scream.enabled
配置文件中的php.ini
指令将禁用错误抑制运算符(@
)的效果:
引用manual:
scream扩展可以禁用静默错误控制操作符,以便报告所有错误。此功能由ini设置控制。
请参阅documentation中的示例,了解它如何影响错误报告。
禁用scream
可以解决问题。
更改php.ini
中的指令,如下所示:
scream.enabled = 0
如果要在运行时禁用它,则可以按照手册中的说明使用ini_set
:
ini_set('scream.enabled', false);