为什么if语句和if语句之外的return语句。有人可以解释为什么这样做吗?
public function fetch_countries($limit, $start) {
$this->db->limit($limit, $start);
$query = $this->db->get("Country");
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
**return $data;**
}
**return false;**
}
为什么不写这种方式
public function fetch_countries($limit, $start) {
$this->db->limit($limit, $start);
$query = $this->db->get("Country");
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
**return $data;**
}else{
**return false;**
}
}
答案 0 :(得分:0)
两个代码块都以完全相同的方式运行,第一个代码块更优雅。
在第一个示例中,如果($query->num_rows() > 0)
的计算结果为true,则函数将始终执行return $data
,因为它位于if语句的代码块中,这意味着在执行该函数中的代码行之后没有任何内容。因此,在这种情况下,它永远不会到达if语句之外的return false
,因此在第二个示例中不需要else
。