如果在PHP函数中

时间:2011-04-04 17:37:26

标签: php

我在php类中有方法,它返回我使用的代码的布尔响应。

public function checkIfExist($table ,$key, $value)
{
    $sth = $this->dbh->prepare("SELECT COUNT(*) FROM $table WHERE $key = :value");
    $sth->bindParam(':value', $value);
    $sth->execute();
    if($sth->fetchColumn() >= 1)
    {   
        return true;
    }
        return false;
}

上面的方法适用于我而没有包含else条件,逻辑上它应该工作,因为一旦函数获得true作为布尔响应它将退出方法。但这是正确的方式,还是我应该在那里包括其他条件?

8 个答案:

答案 0 :(得分:6)

这是编写此逻辑的完美方式。如果您从if正文返回,则可以省略else

然而,这样做会更简洁:

return $sth->fetchColumn() >= 1;

答案 1 :(得分:3)

最好这样回报:

return ($sth->fetchColumn() >= 1);

而不是if和else

答案 2 :(得分:2)

这是很好的编码。

您不需要else

这是因为if语句中的任何内容都是真的 - >你回来了,如果不是这样的话 - >你要回来了。

因此该函数的实现是正确的。

答案 3 :(得分:1)

这很好,因为你说方法已经返回了。由于你的条件已经返回一个布尔值,你也可以写

public function checkIfExist($table ,$key, $value)
{
    $sth = $this->dbh->prepare("SELECT COUNT(*) FROM $table WHERE $key = :value");
    $sth->bindParam(':value', $value);
    $sth->execute();
    return $sth->fetchColumn() >= 1;
}

答案 4 :(得分:1)

只需返回比较结果:

public function checkIfExist($table ,$key, $value)
{
    $sth = $this->dbh->prepare("SELECT COUNT(*) FROM $table WHERE $key = :value");
    $sth->bindParam(':value', $value);
    $sth->execute();
    return ($sth->fetchColumn() >= 1);
}

答案 5 :(得分:0)

这确实是一个偏好问题。

我个人喜欢每个函数/方法只有一个return语句。这将需要使用变量来保存返回值 - 但希望增益是更易读的代码。

答案 6 :(得分:0)

是对的。而且也非常实践。

答案 7 :(得分:0)

我经常使用这种编码:

function do_something($arg)
{
    if(some_condition_fails($arg))
    {
        return false;
    }

    if(some_other_condition_fails($arg))
    {
        return false;
    }

    //do it
    return $result;
}

没有必要将所有内容嵌套在其他地方......实际上,在不需要它的代码周围添加额外的块比在我看来更脏(比在我看来)。