根据属性的值调用方法

时间:2014-01-23 20:32:01

标签: php class methods properties

我根据属性的值调用了大量方法。我想知道是否有更正确的方法来做我正在做的事情?

我的代码现在:

if ($qvalue->fid == 1) { $this->Archive1(); }
if ($qvalue->fid == 2) { $this->Archive2(); }
if ($qvalue->fid == 3) { $this->Archive3(); }
if ($qvalue->fid == 4) { $this->Archive4(); }
if ($qvalue->fid == 5) { $this->Archive5(); }
if ($qvalue->fid == 6) { $this->Archive6(); }
if ($qvalue->fid == 7) { $this->Archive7(); }
if ($qvalue->fid == 8) { $this->Archive8(); }
if ($qvalue->fid == 9) { $this->Archive9(); }
if ($qvalue->fid == 10) { $this->Archive10(); }
...

我可以这样做:

$this->Archive($qvalue->fid)();

我知道这不起作用,我只是不确定是否可以做得更好。甚至不确定搜索什么以查看类似的其他帖子。

1 个答案:

答案 0 :(得分:1)

$method = 'Archive' . $qvalue->fid;
if (method_exists($this, $method))
{
    $this->$method();
}