ID:               50729
 User updated by:  keithdavis at solidtechservice dot com
 Reported By:      keithdavis at solidtechservice dot com
 Status:           Bogus
 Bug Type:         Scripting Engine problem
 Operating System: Windows 7 64 Bit
 PHP Version:      5.3.1
 New Comment:

Ok, I get it now, but I feel like the manual is very unclear on this
subject. I posted this problem in Experts Exchange and we couldn't
figure it out there either. 

It reads to me that the "ERROR LEVEL" or error number is being set to
0, not the "ERROR REPORTING LEVEL".

Thanks for your help.


Previous Comments:
------------------------------------------------------------------------

[2010-01-12 18:19:21] ras...@php.net

Just check it:

if(error_reporting()==0) ...

I'm confused about your confusion here.

------------------------------------------------------------------------

[2010-01-12 18:11:33] keithdavis at solidtechservice dot com

That makes no sense. How am I to determine in my error handler that the
error control operator is being used?

------------------------------------------------------------------------

[2010-01-12 17:01:01] degeb...@php.net

On my setup using PHP 5.3.1, this code:

<?php
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
    var_dump(error_reporting());
}

set_error_handler('myErrorHandler', E_ALL);

var_dump(error_reporting());
@include 'does-not-exist.php';
var_dump(error_reporting());
?>

Produces the following output:
int(32767)
int(0)
int(0)
int(32767)

It is your own responsibility to check the error handling level inside
your custom error handler.

------------------------------------------------------------------------

[2010-01-12 15:17:50] keithdavis at solidtechservice dot com

The manual states

"Of particular note is that this value will be 0 if the statement that
caused the error was prepended by the @ error-control operator. "

This is NOT happening.

------------------------------------------------------------------------

[2010-01-12 15:15:27] keithdavis at solidtechservice dot com

But it's NOT setting the error reporting to 0. It is a bug, see this
reply to a bug done in 2002.

http://bugs.php.net/bug.php?id=16570&edit=2

When I use the @, it is supposed to pass an error level of 0, but it
does not do this. It still sets it to 1024 and does NOT set my reporting
level to 0.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/50729

-- 
Edit this bug report at http://bugs.php.net/?id=50729&edit=1

Reply via email to