我正在尝试寻找一种方法来缩短以下代码块。
private function getFruit($class, $id)
{
if ($class === 'Apple') {
return Apple::findOrFail($id);
} elseif ($class === 'Orange') {
return Orange::findOrFail($id);
} elseif ($class === 'Pear') {
return Pear::findOrFail($id);
} elseif ($class === 'Banana') {
return Banana::findOrFail($id);
} elseif ($class === 'Mango') {
return Mango::findOrFail($id);
}
}'
我想简化一下。
private function getFruit($class, $id)
{
return $class::findOrFail($id);
}
但这不起作用。仅给定类名,有没有办法在类上调用静态方法?值得的是,在我的示例中,所有类都扩展了一个提供'findOrFail'方法的类。