我有两个功能,希望在$test=one
,function1()
运行时以及$test=two
时运行function2()
。像这样:
switch ($test)
{
case "one":
function1();
break;
case "two":
function2();
break;
}
现在如何通过数组(选择)?任何人都知道吗?
如何在函数上设置数组键?像这样的东西:
array("one"=>function1(),"two"=>function2());
答案 0 :(得分:4)
<?php
function func1()
{
print "111\n";
}
function func2()
{
print "222\n";
}
//put functions names into an array
$functions = array(
'one' => "func1",
'two' => "func2",
);
$test = 'two';
if(isset($functions[$test]))
{
call_user_func($functions[$test]);
}
输出:
222
答案 1 :(得分:0)
user4035的答案是正确的,但换句话说我们可以使用:
$arr[$test]();
而不是
call_user_func($arr[$test]);
然后:(完整代码):
function func1(){
echo 'func1 runing';
}
function func2(){
echo 'func2 runing';
}
$test='one';
$arr=array ('one'=>'func1','two'=>'func2');
$arr[$test]();
输出:
func1 runing