-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 +1
Given that static methods apply to the class and don't have much in the way of inheritance rules, Christian's suggested behaviour makes a lot of sense. Jasper Christian Schneider wrote: > In the discussion about parameter checking in 5.2 I proposed to relax > the checks a tiny little bit: Don't test static functions (e.g. useful > for factory methods) and allow adding default values to functions (the > object of the inherited class still accepts the same parameters as the > base class). A patch is attached. > > Example: > class Base > { > static function factory($x) { } > function foo($x) { } > } > > class Spezialized extends Base > { > static function factory() { } # Static method, e.g. factory method > function foo($x = null) { } # Default values for specialized class > } > > Regards, > - Chris > > > ------------------------------------------------------------------------ > > Index: Zend/zend_compile.c > =================================================================== > RCS file: /repository/ZendEngine2/zend_compile.c,v > retrieving revision 1.647.2.27.2.18 > diff -u -r1.647.2.27.2.18 zend_compile.c > --- Zend/zend_compile.c 19 Sep 2006 21:36:53 -0000 1.647.2.27.2.18 > +++ Zend/zend_compile.c 20 Sep 2006 19:05:43 -0000 > @@ -1922,13 +1922,12 @@ > } > > /* Checks for constructors only if they are declared in an interface */ > - if ((fe->common.fn_flags & ZEND_ACC_CTOR) && > !(proto->common.scope->ce_flags & ZEND_ACC_INTERFACE)) { > + if ((fe->common.fn_flags & (ZEND_ACC_CTOR | ZEND_ACC_STATIC)) && > !(proto->common.scope->ce_flags & ZEND_ACC_INTERFACE)) { > return 1; > } > > /* check number of arguments */ > - if (proto->common.required_num_args != fe->common.required_num_args > - || proto->common.num_args > fe->common.num_args) { > + if (proto->common.num_args > fe->common.num_args) { > return 0; > } > > > - -- Jasper Bryant-Greene Director Album Limited [EMAIL PROTECTED] +64 21 708 334 / 0800 425 286 http://www.album.co.nz/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5-ecc0.1.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iFcDBQFFEfIqnqZ4vwo6v1gRCrP0AP4iqczaBXNYGTtooXvP8AKcfwS1tlfHghVa U4EWSFsIMQD/eoAnLN9JeJaqFqIqfttF2Pq4TR1GLHkJdowFKZY7vgc= =DSys -----END PGP SIGNATURE----- -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php