Правильное возвращаемое значение при множественных возможностях - PullRequest
0 голосов
/ 18 октября 2011

Если бы у вас была функция в классе, такая как:

public function insertItemToTable($item){
   $sql = query("insert to table {$item}");
   $insertId = sql_inserted_id();
}

Какой элемент вы бы вернули?

  1. Вы бы вернули true / false дляи установите переменную класса для вставленного идентификатора (например, $this->insertedItem = sql_insert_id())
  2. Возвращает значение вставленного идентификатора

1 Ответ

1 голос
/ 18 октября 2011

В вашем примере вы можете сделать оба.

<?php
public function insertItemToTable($item){
   if ($sql = query("insert to table {$item}")) {
       return sql_inserted_id();
   }
   return false;
}

Это легко проверить в вашем коде:

<?php
if (false !== ($id = $obj->insertItemToTable($item)) {
    // it was inserted, $id is the new id
} else {
    // it failed and returned false
}

Это обычная модель, которую используют люди, например,

<?php
if ($r = mysql_query('SELECT * FROM mytable')) {
    while ($rs = mysql_fetch_array($r)) {
        //....
    }
}

В конечном счете, это предпочтение, и нет единственно правильного способа сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...