ID:               28167
 Updated by:       [EMAIL PROTECTED]
 Reported By:      jaguargordon at free dot fr
-Status:           Open
+Status:           Bogus
 Bug Type:         Class/Object related
 Operating System: Windows XP SP1
 PHP Version:      5CVS-2004-04-26 (dev)
 New Comment:

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

Correct analysis, no bug here.


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

[2004-10-13 02:05:28] php at bobsilva dot com

Not sure this is a bug.
The Relection API is dependent on the class definition not the usage of
the class. Therefore, since the raise() method is only called statically
and not defined as static, it properly indicates this in the stack
trace. In PHP5, calling non-static methods statically is only a BC
option and therefore should not be used.

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

[2004-04-26 20:41:59] jaguargordon at free dot fr

title ...

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

[2004-04-26 20:37:27] jaguargordon at free dot fr

Description:
------------
The stack trace feature seams to mishandle static methods when a
exception is raised.

Reproduce code:
---------------
<pre><?php

class MyException extends Exception {
function raise() {
throw new MyException;
}

static function raiseStatic() {
throw new MyException;
}
}

function dontwork() { return false; }

class Foo {
function bar() {
$v = @dontwork() or MyException::raise();
}

function barStatic() {
$v = @dontwork() or MyException::raiseStatic();
}
}

$foo = new Foo;

try { $foo->bar(); }
catch( Exception $e ) { echo $e; echo "\n\n"; }

try { $foo->barStatic(); }
catch( Exception $e ) { echo $e; echo "\n\n"; }

?></pre>

Expected result:
----------------
exception 'MyException' in C:\www\static.php:6
Stack trace:
#0 C:\www\static.php(19): MyException::raise()
#1 C:\www\static.php(29): Foo->bar()
#2 {main}

exception 'MyException' in C:\www\static.php:10
Stack trace:
#0 C:\www\static.php(23): MyException::raiseStatic()
#1 C:\www\static.php(32): Foo->barStatic()
#2 {main}


Actual result:
--------------
exception 'MyException' in C:\www\static.php:6
Stack trace:
#0 C:\www\static.php(19): Foo->raise()
#1 C:\www\static.php(29): Foo->bar()
#2 {main}

exception 'MyException' in C:\www\static.php:10
Stack trace:
#0 C:\www\static.php(23): MyException::raiseStatic()
#1 C:\www\static.php(32): Foo->barStatic()
#2 {main}



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


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

Reply via email to