这是我目前拥有的:
public function setUp() {
$tests = array(
'printHello' => array(),
'printWorld' => array(),
'printName' => array('Bob'),
);
}
public function printHello() {
echo "Hello, ";
}
public function printWorld() {
echo "World!";
}
public function printName($name=false) {
echo $name;
}
我想要做的是遍历所有函数并连续运行它们。这是我最终不得不做的事情,但似乎应该有一种更有效的方法来做到这一点:
foreach($tests as $test=>$parameters) {
$num_params = count($parameters);
switch($num_params) {
case 0:
$this->$test();
break;
case 1:
$this->$test($parameters[0]);
break;
case 2:
$this->$test($parameters[0],$parameters[1]);
break;
case 3:
$this->$test($parameters[0],$parameters[1],$parameters[2]);
break;
default:
echo "Error! More than 3 parameters for function" . $test . "!";
exit;
}
}
我正在使用 PHP 5.3。有没有更有效的方法来循环调用函数?
编辑:我不能使用call_user_func_array
,因为我从它们的父类中调用非静态方法。还有其他方法吗?