Variable functions
PHP supports the concept of variable functions.
This means that if a variable name has parentheses appended to it,
PHP will look for a function with the same name as whatever the
variable evaluates to, and will attempt to execute it. Among other
things, this can be used to implement callbacks, function tables,
and so forth.
Variable functions won't work with language
constructs such as
Example #1 Variable function example
echo"In foo()
\n";
}
functionbar($arg='')
{
echo"In bar(); argument was '$arg'.
\n";
}// This is a wrapper function around echofunctionechoit($string)
{
echo$string;
}$func='foo';$func();// This calls foo()$func='bar';$func('test');// This calls bar()$func='echoit';$func('test');// This calls echoit()?>
An object method can also be called with the
variable functions syntax.
Example #2 Variable method example
functionVariable()
{$name='Bar';$this->$name();// This calls the Bar() method}
functionBar()
{
echo"This is Bar";
}
}$foo= newFoo();$funcname="Variable";$foo->$funcname();// This calls $foo->Variable()?>
When calling static methods, the function call is
stronger than the static property operator:
Example #3 Variable method example with static
properties
static$variable='static property';
static functionVariable()
{
echo'Method Variable called';
}
}
echoFoo::$variable;// This prints 'static propery'. It does need a $variable in this scope.$variable="Variable";Foo::$variable();// This calls $foo->Variable() reading $variable in this scope.?>