Php 调用函数-变量

Php 调用函数-变量,php,oop,variables,object,call,Php,Oop,Variables,Object,Call,我有: 我如何制作一些东西: echo $test->getNum1(); echo $test->getNum2(); echo $test->getNum9(); for(i=0;igetNum.$i.(); } ?用于(i=0;i$method(); } 用于($i=0;$i

我有:

我如何制作一些东西:

  echo  $test->getNum1();
  echo  $test->getNum2();
  echo  $test->getNum9();
for(i=0;igetNum.$i.();
}

用于(i=0;i$method();
}
用于($i=0;$i<10;$i++){
echo eval('$text->getNum'$i.''());
}
作为对的补充,您还可以使用或为函数指定变量名。这些变量以a作为第一个参数,因此您可以在其中提供字符串。在这种情况下,您可以执行以下操作:

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

for($i=0;$i这将是最简单和最健壮的(如果您不想用反射api再写5行):


for($i=0;$iAlexs)的答案是正确的。但是干净的方法是创建一个带有参数的方法
getNum()
。只需说“;”)这里真正的问题是:为什么有多个函数做同一件事?(推荐)
eval
是邪恶的;)使用
eval
,即使不是最佳解决方案,也没有本质上的错误。请检查无意识的恐惧宣传。
for(i=0;i<10;i++){
  $method = 'getNum' . $i;
  echo  $test->$method();
}
for ($i = 0; $i < 10; $i++) {
    echo eval('$text->getNum'.$i.'()');
}
for($i=0; $i<10; $i++){
  $method = array($test, 'getNum' . $i);
  echo call_user_func($method);
}
for($i=0; $i<10; $i++) {
  echo call_user_func(array($test, "getNum{$i}")); 
}