在给定的类名作为字符串的类上调用静态方法

时间:2019-01-15 21:06:43

标签: php laravel

我正在尝试寻找一种方法来缩短以下代码块。

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'方法的类。

0 个答案:

没有答案