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

Reply via email to