Hi! > +class Base { > + const DUMMY = "XXX"; > + public function foo($var=TEST, $more=null) { return true; } > + public function bar($var, $more=self::DUMMY) { return true; } > +} > + > +class Child extends Base { > + const DUMMY = "DDD"; > + public function foo($var=TEST) { return true; } > + public function bar() { return true; } > +} > +?> > +--EXPECT-- > +Strict Standards: Declaration of Child::foo() should be compatible with > Base::foo($var = '123', $more = NULL) in %sbug63336.php on line %d > + > +Strict Standards: Declaration of Child::bar() should be compatible with > Base::bar($var, $more = 'XXX') in %sbug63336.php on line %d
I don't think these are good examples for E_STRICT errors. bar() traditionally has been used in PHP as function accepting any arguments, so even if current implementation of PHP (wrongly) says it's not compatible it may be fixed in the future. I'd rather use more obvious cases where the extension is clearly wrong - like adding non-optional arguments or types. This bug has very little to do with compatibility resolution, so I do not think it is good to peg it to a particular way of doing it. -- Stanislav Malyshev, Software Architect SugarCRM: http://www.sugarcrm.com/ (408)454-6900 ext. 227 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php