присваивать значения в операторе if? - PullRequest
0 голосов
/ 24 августа 2011

При использовании воспламенителя кода я создаю много функций, которые выглядят примерно так;

function info($id){
  $r = $this->db->select('id', 'name', 'age')->from('users')->where('id', $id)->get();
  return ($r->num_rows() == 0 ? false : $r->result());
}

теперь, когда я использую эту функцию, я также использую эту функцию, чтобы проверить, существует ли пользователь, и назначить его переменной.

Так что будет использоваться что-то вроде

if( ($user = $this->user->info($_GET['id'])) === false )
  die('User not found');

//now we can continue and $user contains the user info

Мой вопрос: есть ли причина, по которой это плохая идея?

Насколько я знаю, это то же самое, что и

$user = $this->user->info($_GET['id']);
if( $user === false )
  die('User not found');

но, на мой взгляд, на самом деле легче следовать.

1 Ответ

2 голосов
/ 24 августа 2011

Как вы говорите, два метода идентичны. Единственная разница - ясность. Я считаю, что второй метод намного понятнее, чем первый. Вам следует обсудить ваши соглашения с другими разработчиками, работающими над вашими проектами, и установить стандарты для написания кода. Последовательность - самая важная вещь.

Недостаток первого метода заключается в том, что трудно сказать, если вы намеревались использовать == вместо =. Во втором методе нет такой двусмысленности.

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