Я видел много этого вида кода недавно:
if ($foo = $bar->getFoo())
{
baz($foo);
}
Это считают хорошей или плохой практикой?
Например, Netbeans, который IDE дает уведомлению при использовании этого вида кода:
Возможное случайное присвоение, присвоений в условиях нужно избежать
Что Вы думаете?
Это полезный инструмент, который, признаться, я иногда использую, чтобы избежать лишней строки для присваивания. С одной стороны, это может быть плохой практикой для некоторых, потому что:
С другой стороны:
Должен отметить, что я стараюсь избегать их, потому что чаще всего нахожу их менее читабельными, но для меня это чисто личное предпочтение. Там, где я нахожу его полезным, я его использую.
Это простой способ скрыть ошибки, но это обычная практика в PHP. Особенно во время таких вещей, как обход каталогов, когда вы делаете такие вещи, как while (($ dir = readdir ($ handle))! == FALSE)
Если вы можете этого избежать. Избегай это.
Хотя это правильный синтаксис и результаты будут такими, как ожидалось, это плохая привычка. Читабельности не хватает, есть вероятность выработать плохую привычку ставить =, когда вы имели в виду ==, и ваши глаза будут постоянно возвращаться к этой строке, когда вы будете пытаться найти реальные ошибки в приложении. Я бы не использовал такой стиль написания. В этом случае просто получите возвращаемое значение, а затем проверьте его... или, что еще лучше, используйте обработку исключений, чтобы не заморачиваться с большим количеством операторов if.