|
Posted by ZeldorBlat on 05/02/07 22:02
On May 2, 4:56 pm, Mark Stanton <m...@vowleyfarm.co.uk> wrote:
> I'd like to implement one of these (a function table).
>
> First I thought that execution through variable functions
> ($foo='bar', $foo() executes the function 'bar') would work work, but
> this seems to get upset when my function is actually a method of a
> class.
You can use variable function names with class methods. The following
works just fine and echo's out "baz":
class Foo {
public function bar($x) {
echo $x;
}
}
$f = new Foo();
$funcName = 'bar';
$f->$funcName('baz');
>
> Then I hoped that call_user_func(_array) would do the trick, but this
> seems to get upset when the method uses "this", which is something of
> a serious limitation it seems to me.
call_user_func() can also be used with object methods (even when they
reference "this"). The following also correctly echo's out "baz":
class Foo {
protected $x = 'baz';
public function bar() {
echo $this->x;
}
}
$f = new Foo();
call_user_func(array($f, 'bar'));
>
> Anyone know ways around either or both of these apparent (to me)
> problems?
>
> Regards
> Mark
So these aren't really problems.
[Back to original message]
|