php函数返回两个值

时间:2015-10-01 17:59:49

标签: php

为什么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;**
        }

   }

1 个答案:

答案 0 :(得分:0)

两个代码块都以完全相同的方式运行,第一个代码块更优雅。

在第一个示例中,如果($query->num_rows() > 0)的计算结果为true,则函数将始终执行return $data,因为它位于if语句的代码块中,这意味着在执行该函数中的代码行之后没有任何内容。因此,在这种情况下,它永远不会到达if语句之外的return false,因此在第二个示例中不需要else