Я хочу посмотреть, есть ли упрощенный способ сделать оператор if
, который проверяет несколько условий, где он использует данные из той же функции.Определить и проверить переменную в выражении if
if($class->function($id) && $class->function($id)['key'] > 0)
{
//Do something...
}
Проблема здесь заключается в том, что мы делаем 2 обращения к базе данных, которые извлекают одни и те же данные. Одно из очевидных решений делает следующее:
$classVariable = $class->function($id);
if($classVariable && $classVariable['key'] > 0)
{
//Do something...
}
Мой вопрос конкретно это, я могу добиться того же эффекта все внутри if
заявление? Например, (это не сработает):
if($classVariable = $class->function($id) && $classVariable['key'] > 0
{
//Do something...
}
Возможно ли это, и есть ли предпочтительный способ сделать это? Мне кажется, что определение и использование этого в том же заявлении было бы более чистым кодом ...
Использование '() 'вокруг задания, и он будет работать нормально. –
Следует отметить, что, хотя вы * можете * сделать это таким образом, это не рекомендуется. Вы должны объявить переменную перед оператором if. Но, это ваш код, и вы можете сделать это, как бы вы хотели :) – Kenyon
Это работает. Кто-нибудь знает, есть ли предпочтение между его определением, а затем выполнение оператора 'if' или определение его внутри оператора' if'? Редактировать: Кеньон опубликовал, когда я спрашивал. Благодаря! :) –