The ^ is the bitwise NOT operator in PHP. PHP defines a bunch of bitmasks to flag different error levels. E_ALL is the bit mask for "everything except STRICT-level", so that line means "everything except STRICT level but not NOTICE level". If your watchdog table is filling up with PHP warning messages, then you have a serious bug in your code somewhere. Do not hide the error. Fix the bug. :-) Look at the error message itself to see what the problem is, track it down, and squish it. --Larry Garfield On Fri, 8 Aug 2008 15:10:50 +0200, "Juan Rodriguez" <juan.fco.rodriguez@gmail.com> wrote:
Hi guys,
I am looking at the implementation of error_reporting: http://api.drupal.org/api/function/error_handler/5
and I don't understand this line:
if ($errno & (E_ALL ^ E_NOTICE)) {
does it means that all errors but E_NOTICE are gonna be reported ? (what I really dont get is the meaning of the ^ php operator....)....
I am trying to understand this code because my watchdog table is getting full of PHP warning messages, and I was not able to found a configuration option to filter this kind of messages.
Would it be possible to change the behaviour to report messages above or below a specific level like it is done in php.ini ?
Thanks in advance.