Re: Multi-Method Dispatch in PHP 5.1?

From: 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

« previous php.internals (#9467) next »