ID:               50729
 Updated by:       ras...@php.net
 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:

Just check it:

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

I'm confused about your confusion here.


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

[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.

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

[2010-01-12 15:12:49] col...@php.net

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

@ temporarily sets error_reporting to 0, it doesn't prevent your
handler 
to be called. You've to do the filtering in it based on error_reporting

if you want to.

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

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