Janusz Lewandowski wrote:
<?php class A { function mA() { $this->nA(); }static function mB() { self::nB(); } } class B extends A { function mA() { parent::mA(); } static function mB() { parent::mB(); } function nA() { echo 'A'; } function nB() { echo 'B'; } } $obj = new B(); $obj->mA(); B::mB(); ?> Most people will think, that it will output AB. But currently in PHP 5.2 (I don't have PHP 5.3 to test it) it will output: A Fatal error: Call to undefined method A::nb() in Z:\localhost\testLSB.php on line 11 User that sees this, doesn't have any idea where is the problem and how to find some information about it.
If I may throw my 2 cents in, if it's even worth anything anyway. This is exactly what I would expect the output to be.
If you would want A::mB() to go back to B::nB() I would switch the self::nB() to static::nB(), and have an abstract nB() method declared in A. Is this not how everyone thinks it should be?
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
