我应该使用什么样的功能方法

时间:2010-02-03 11:11:34

标签: php function

这是一个非常基本的问题,但我想要专家建议,这就是为什么在这里发布的。

这是两个功能,
两者有什么区别 ?它们都是等效的,包括最佳实践,或者哪种方法更适合在编程中使用。

function is_numeric($number)
{
    if(!preg_match("/^[0-9]+$/",$number))
        return false;
    return true;
}

function is_numeric($number)
{
    if(preg_match("/^[0-9]+$/",$number))
        return true;
    else
        return false;
}

6 个答案:

答案 0 :(得分:16)

一些编码标准规定第一个分支应该是更有可能的分支,而else分支应该处理更特殊的事情。

但这完全是深奥的,选择你想要的任何东西。

在我个人看来,请使用

function is_numeric($number)
{
    return preg_match("/^[0-9]+$/",$number);
}

因为preg_match返回一个布尔值。

答案 1 :(得分:6)

它们是等价的 - 选择你认为更具可读性的那些。

如果我不需要它,我个人倾向于在条件句上留下任何else语句,但这是编程 style 而不是程序性能或正确性的问题。

这两个代码示例在功能上都是相同的,并且执行方式相同。

答案 2 :(得分:4)

PHP有一个内置的is_numeric()函数:http://php.net/manual/en/function.is-numeric.php为什么不使用它。

答案 3 :(得分:4)

怎么样:

function is_numeric($number)
{
    return preg_match("/^[0-9]+$/",$number);
}

但这不会导致性能差异。

答案 4 :(得分:4)

从可读性的角度来看,最好有积极的条款,因为人们可能会错过!当他们阅读源代码时,会导致对代码的错误理解,结果往往是:错误。

斯蒂芬有一个有效的观点。我认为这取决于两个代码块的大小。如果它们或多或少相等,我会在if语句中使用not negated子句。

答案 5 :(得分:3)

怎么样:

function is_numeric($number) {
    return preg_match("/^[0-9]+$/",$number);
}