ID:               21486
 Comment by:       phpbugs at ynx dot de
 Reported By:      corinl at gmx dot de
 Status:           Bogus
 Bug Type:         Class/Object related
 Operating System: windows
 PHP Version:      4.3.0
 New Comment:

Hey, I think this is something that really needs to be fixed!



The original testcase shows that $this evaluates to the instance of cb
even in ca::debug, which is definitly NOT the behaviour one might
expect!



I think $this should always evaluate to nothing when accessed inside a
function that is called statically!


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

[2003-01-07 07:39:38] [EMAIL PROTECTED]

$this is that of the calling class when you use static method calls,
The official line is dont rely on this behaviour as

it may change...

ref: php-dev mailing list.

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

[2003-01-07 06:19:33] corinl at gmx dot de

hi,

i found that the $this pointer does not always point to the current
class, as it is supposted to.



run the following example code:

-----

class ca

{

        function debug()

        {

                echo("ca::debug -> ");

                print_r($this);

                echo("<br>");

        }

}



class cb

{

        function debug()

        {

                echo("cb::debug -> ");

                print_r($this);

                echo("<br>");

        }

        

        function test()

        {

                cb::debug();

                ca::debug();

        }

}



$b = new cb;

$b->test();

-----



output is:

cb::debug -> cb Object ( ) 

ca::debug -> cb Object ( ) 



but should'nt it be:

cb::debug -> cb Object ( ) 

ca::debug -> ca Object ( ) 



it seems that when a class is called like class::methode from within
another class, the this pointer points to the calling class, not the
current running class!!

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


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

Reply via email to