Edit report at http://bugs.php.net/bug.php?id=52969&edit=1
ID: 52969 User updated by: ircmaxell at yahoo dot com Reported by: ircmaxell at yahoo dot com Summary: This defined in static call from within another class Status: Bogus Type: Bug Package: Class/Object related Operating System: linux PHP Version: 5.3.3 Block user comment: N New Comment: Close it if you wish, but I do honestly believe this is a major bug... This means that you cannot trust that $this is an instance of the class it's used in. So does that mean that we must add: ($this instanceof self) or throw new Exception('called from another class'); to all of our methods? Remember, any sufficiently advanced bug is indistinguishable from a feature (no matter if it is documented or not). But don't be afraid to call it what it really is... Just because it's documented, doesn't mean it isn't a bug... Again, IMHO... Previous Comments: ------------------------------------------------------------------------ [2010-10-02 20:07:43] cataphr...@php.net Closing as bogus. As you have pointed out, this is documented. ------------------------------------------------------------------------ [2010-10-02 15:51:04] gnuffo1 at gmail dot com It has been pointed out to me that this is actually documented: http://us2.php.net/manual/en/language.oop5.basic.php Under example 2 and specifically the lines: $b = new B(); $b->bar(); ------------------------------------------------------------------------ [2010-10-02 15:33:50] php at rwasmus dot nl Can reproduce across architectures & versions from 5.2.9 onward, IMHO opinion, just an E_STRICT error in between is understating the scripters design flaw. Some existing code may rely on it, so a real fix may hurt some packages, but at the very least I'd increase the errors severity. ------------------------------------------------------------------------ [2010-10-02 15:33:00] ircmaxell at yahoo dot com Oh, and $this is an object of class Test2 within Test1::getName()... ------------------------------------------------------------------------ [2010-10-02 15:28:02] gnuffo1 at gmail dot com This seems to have existed way back in PHP 4.1: http://www.advogato.org/article/470.html If this is a bug, then I think it should be turned into a feature and documented. It is occasionally useful for trait-like functionality. ------------------------------------------------------------------------ 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/bug.php?id=52969 -- Edit this bug report at http://bugs.php.net/bug.php?id=52969&edit=1