class example()
{
function shout($var)
{
echo 'shout'.$var;
}
function whisper($var, $bool)
{
if($bool)
{
echo $var;
}
}
}
$obj = new example();
if($var)
{
$func = $obj->shout();
}else
{
$func = $obj->whisper();
}
我想首先准备函数变量以供以后使用,而不是将条件放在循环中。有可能这样做吗?
答案 0 :(得分:6)
您可以按名称调用方法:
if ($var) {
$fn = 'shout';
} else {
$fn = 'whisper';
}
$obj->$fn();
答案 1 :(得分:4)
您可以将函数名称放在字符串中:
if($var)
{
$func = 'shout';
}else
{
$func = 'whisper';
}
后来:
$obj->$func
您还可以使用回调:
if($var)
{
$func = array($obj, 'shout');
}else
{
$func = array($obj, 'whisper');
}
随后:
call_user_func($func);
或:
call_user_func_array($func, $args);