ID: 42016 User updated by: reto at buxaprojects dot com Reported By: reto at buxaprojects dot com -Status: Feedback +Status: Open Bug Type: Class/Object related Operating System: FreeBSD PHP Version: 5.2.3 New Comment:
Because a non-static method should not be called statically! This should also apply for a parents parent class! Class C and B should only be able to call parent:: . If class C must access the method test() of class A, class B shouldn't override the method test(). Previous Comments: ------------------------------------------------------------------------ [2007-07-17 07:51:34] [EMAIL PROTECTED] And why do you think this is a bug? ------------------------------------------------------------------------ [2007-07-17 06:24:58] reto at buxaprojects dot com Description: ------------ I expected, that i cannot call a non-static method in a parent's parent class with ParentClassName::method() from a child class. But it works even on E_STRICT. I think this should be a bug! Reproduce code: --------------- class A { private $myVar; public function test() { $this->myVar = 'test'; echo 'A::test()' . "\n"; } } class B extends A { public function test() { echo 'B::test()' . "\n"; } } class C extends B { public function test() { echo 'C::test()' . "\n"; A::test(); } } $c = new C; $c->test(); Expected result: ---------------- Non-static method A::test() should not be called statically Actual result: -------------- C::test A::test ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=42016&edit=1