不写过多的代码

时间:2016-10-04 21:12:10

标签: php

所以,我有这个功能,我试图运行,看起来像这样:

aggregate( ..., FUN=max)

如果它为null,我不希望function getValue($root, $i = null) { if(isset($root[$i]['Hello']) { return $root[$i]['Hello']; } elseif(isset($root['Hello']) { return $root['Hello']; } else { return ''; } } 在那里。如果不编写大量基本重复的代码,我怎么能这样做呢?

2 个答案:

答案 0 :(得分:2)

的内容
function getValue($root, $i = null)
{
    return $i ? isset($root[$i]) : isset($root);
}

如果我理解你正在努力实现的目标。

随着问题的更新,我认为您可以逃脱的最短时间是:

function getValue($root, $i = null)
{
    $_t = isset($root[$i]) ? $root[$i] : $root;
    return isset($_t['Hello']) ? $_t['Hello'] : '';
}

https://3v4l.org/ZKtQi

答案 1 :(得分:2)

只需检查$i并使用三元组:

function getValue($root, $i = null)
{
    return (isset($i) && isset($root[$i]['Hello'])) ? $root[$i]['Hello'] : '';
    return (isset($root['Hello'])) ? $root['Hello'] : '';
}

你可能将上面的两个三元组合成一个return,但我会反对它。

与您当前的代码一致:

function getValue($root, $i = null)
{
    if(isset($i) && isset($root[$i]['Hello']))
    {
        return $root[$i]['Hello'];
    }
    elseif(isset($root['Hello']))
    {
        return $root['Hello'];
    }
    else 
    {
        return '';
    }
}