echo $test->getNum1();
echo $test->getNum2();
echo $test->getNum9();
我该怎样做点什么:
for(i=0;i<10;i++){
echo $test->getNum . $i .();
}
答案 0 :(得分:7)
for(i=0;i<10;i++){
$method = 'getNum' . $i;
echo $test->$method();
}
答案 1 :(得分:2)
作为Alex's answer的补充,您还可以使用call_user_func
或call_user_func_array
为函数指定变量名称。它们以callback作为第一个参数,因此您可以在其中提供一个字符串。在这种情况下,您可以执行以下操作:
for($i=0; $i<10; $i++){
$method = array($test, 'getNum' . $i);
echo call_user_func($method);
}
答案 2 :(得分:1)
这个将是最简单和最健壮的(即如果你不想用反射api再写5行):
for($i=0; $i<10; $i++) {
echo call_user_func(array($test, "getNum{$i}"));
}
答案 3 :(得分:-3)
for ($i = 0; $i < 10; $i++) {
echo eval('$text->getNum'.$i.'()');
}