2015-10-01 4 views
0

Почему оператор return в выражении if и снаружи оператора if. Может кто-нибудь объяснить, почему это сделано?Функция php возвращает два значения

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

кодеры ленивы, поэтому они не будут писать ненужных символов (6 дополнительных символов!) – Rizier123

+0

@ Rizier123 как это работает? возвращаемое значение два раза? –

+0

'return' завершит эту функцию, поэтому если:' $ query-> num_rows()> 0', то он вернет '$ data' else' false' – Rizier123

ответ

0

Оба блока кода будет работать в том же образом, первый один только немного более элегантно.

В первом примере, если ($query->num_rows() > 0) истинно, то функция будет всегда выполнить return $data, так как он находится в пределах, если код оператора блока, которая ничего не значит, после этой строки кода в функции будет выполняться. Таким образом, в этом случае он никогда не достигнет return false вне оператора if, и, следовательно, отсутствие во втором примере else не требуется.

+0

большое спасибо –

Смежные вопросы