Re: Multi-Method Dispatch in PHP 5.1?
| From: | Andrey Hristov | Date: | Wed, 21 Apr 2004 12:53:00 +0000 |
| Subject: | Re: Multi-Method Dispatch in PHP 5.1? | ||
| References: | 1 2 3 4 5 6 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-9467@lists.php.net to get a copy of this message | ||
Quoting Johannes Schlueter <usenet-022004@schlueters.de>:
> Andrey Hristov wrote:
> > class foobar {
> [...]
> > protected function doSomething_objectFubar($fub) {
> > $a = func_get_args();var_dump(__METHOD__, $a);
> > }
> >
> > public function doSomething() {
> > $args = func_get_args();
> > $method_name = __FUNCTION__;
> > foreach ($args as $v) {
> > $method_name .= "_".gettype($v);
> > if (FALSE !==($c_name = get_class($v))) {
> > $method_name .= $c_name;
> > }
> > }
> > if (method_exists($this, $method_name)) {
> > return call_user_func_array(array($this, $method_name), $args);
> > }
> > }
> > }//class fubar
>
> Now I do a
> <?php
> class barfoo extends foobar {
> }
>
> $barfoo = new barfoo();
> $barfoo->doSomething($barfoo);
> ?>
>
> And it won't work anymore,so I can't extend te class anymore without
> changing the class foobar....
Yepp :/
Andrey