EugenioPavlov
@EugenioPavlov
Начинающий программист

Сократить условия IF?

if ($prop == 4 && $bed == 0) $icon_red = 'stred';
if ($prop == 1 && $bed == 1) $icon_red = 'apt1red';
if ($prop == 1 && $bed == 2) $icon_red = 'apt2red';
if ($prop == 1 && $bed == 3) $icon_red = 'apt3red';
if ($prop == 1 && $bed == 4) $icon_red = 'apt4red';
if ($prop == 1 && $bed == 5) $icon_red = 'apt5red';

Возможно ли сократить такую запись ?
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
DexterHD
@DexterHD
Software Engineer, Teamlead, CTO
if ($prop == 4) $icon_red = 'stred';
if ($prop == 1) $icon_red = 'apt'.$bed.'red';
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
fornit1917
@fornit1917
if ($prop ==4 && $bed == 0) {
    $icon_red = 'stred';
} elseif ($prop == 1 && $bed >= 1 && $bed <= 5) {
    $icon_red = "apt{$bed}red";
}
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
$icon_red = 'stred';
if($bed > 0){
$icon_red = 'apt'.$prop.'red';
}
Ответ написан
Комментировать
pingo
@pingo
$icon_red = ($prop==1 && $bed>0 && $bed<6) ? 'apt'.$bed.'red' : 'stred'
Ответ написан
Комментировать
heksen
@heksen
Можно так:
switch($prop)
{
case 4: if ($bed==0) $icon_red = 'stred'; break;
case 1:
{
if ($bed == 1) $icon_red = 'apt1red';
if ($bed == 2) $icon_red = 'apt2red';
if ($bed == 3) $icon_red = 'apt3red';
if ($bed == 4) $icon_red = 'apt4red';
if ($bed == 5) $icon_red = 'apt5red';
break;
}
}
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
1. php.net/manual/en/internals2.opcodes.case.php
2. Конкретно в указанном примере, можно как-то так (под рукой php нет, могут быть опечатки):
if ($prop == 4 && $bed == 0) $icon_red = 'stred';
if ($prop==1 && $bed>0 && $bed<6) $icon_red='apt'.$bed.'red';
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы