Derick Rethans <mailto:[EMAIL PROTECTED]> wrote on Friday, July 21, 2006
11:31 AM:
> It's quite a different thing in C++ as there you have method
> overloading which PHP doesn't have. Therefore your argument doesn't
Exactly the point. It's parameter polymorphism in C++/Java.
> hold here as they are simply *two different* methods, and not an
> overriden one. In your code that uses the derived class you can still
> use both methods (one without, and the one with parameters).
To be compatible, the only thing you have to do is adding standard
values to derived methods' parameters:
$ php -d"error_reporting=8191" -r 'class c{function f(){}} class d
extends c{function f($a){}}';
Strict Standards: Declaration of d::f() should be compatible with that
of c::f() in Command line code on line 2
$ php -d"error_reporting=8191" -r 'class c{function f(){}} class d
extends c{function f($a = null){}}';
$ [no error]
This behaviour makes sense to me.
-soenke
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php