调用函数 - 变量

时间:2011-06-05 22:02:11

标签: php oop variables object call

我有:

  echo  $test->getNum1();
  echo  $test->getNum2();
  echo  $test->getNum9();

我该怎样做点什么:

for(i=0;i<10;i++){
  echo  $test->getNum . $i .();
}

4 个答案:

答案 0 :(得分:7)

for(i=0;i<10;i++){
  $method = 'getNum' . $i;
  echo  $test->$method();
}

答案 1 :(得分:2)

作为Alex's answer的补充,您还可以使用call_user_funccall_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.'()');
}