我不知道这叫什么。
我想这样做
// Elsewhere
function A($arg){
echo "Hi" . $arg;
}
function B($arg){
echo "Bye" . $arg;
}
for($i=0;$i<2;$i++)
{
$FunctionUse = $i==0 ? A : B;
$FunctionUse("Rewind");
}
可以这样做吗?
答案 0 :(得分:1)
是的,使用call_user_func
。
另外,请务必查看此链接Variable functions
此外,如果您将A
和B
更改为字符串,您的代码也会有效:
$FunctionUse = $i==0 ? 'A' : 'B';
答案 1 :(得分:0)
这是一个简短而简单的解决方案:
$a = function ($arg){
echo "Hi" . $arg;
}
$b = function ($arg){
echo "Bye" . $arg;
}
for($i=0;$i<2;$i++){
$FunctionUse = $i==0 ? $a : $b;
$FunctionUse("Rewind");
}
请注意,此功能现在具有可变范围。您可能需要在函数或类中将其定义为全局:
global $a, $b;
但是要解决你提出的案例,使用if语句会更容易。
答案 2 :(得分:-1)
使用call_user_func:
// Elsewhere
function A($arg){
echo "Hi" . $arg;
}
function B($arg){
echo "Bye" . $arg;
}
for($i=0;$i<2;$i++)
{
$FunctionUse = $i==0 ? 'A' : 'B';
call_user_func($FunctionUse, "Rewind");
}