根据属性的值调用方法



我有一个大的方法列表,我根据属性的值调用。我想知道是否有更正确的方法来做我在做什么?

我的代码立即:

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)();

我知道这是行不通的,我只是不确定是否可以做得更好。甚至不确定要搜索其他帖子类似的其他帖子。

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

最新更新