我在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作为布尔响应它将退出方法。但这是正确的方式,还是我应该在那里包括其他条件?
答案 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;
}
没有必要将所有内容嵌套在其他地方......实际上,在不需要它的代码周围添加额外的块比在我看来更脏(比在我看来)。