Diversia
@Diversia

Верна ли записана конструкция if?

Подскажите пожалуйста, если после условия if не используются фигурные скобки, то может стоять только один аргумент после проблема? Например:
if ($a) echo "не пусто";
А если так...
if ($a) echo "не пусто"; $b = 1; // неверно?
Присвоение к переменной $b не будет срабатывать в условии, а будет присваиваться постоянно $b = 1. А после конструкции if сработает только оператор echo? Верно?
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
Верно.

Вы пробовали проверить? Написать тест с двумя вариантами значения $a и посмотреть ; )

Заметьте, что если вместо точки-с-запятой после echo вы напишете запятую, то назначение $b выполнится только в случае истинности условия в if:
$a = false;

if ($a) echo "не пусто"; $b = 1; // назначение $b выполнится всегда

if ($a) echo "не пусто", $b = 1; // назначение $b выполнится только при истинности $a
// второй вариант плохой, не делайте так. Результат $b = 1 передается как аргумент в echo
// лучше использовать фигурные скобки:
if ($a) {
  echo "не пусто";
  $b = 10;
}
// в скобках лучше читается
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
Верно, но так лучше не писать. Очень плохо читается и к тому же велика вероятность ошибиться и долго не понимать почему у вас $b всегда 1.
if ($a) {
    echo "не пусто";
}

Если экономите строки, то в данном случае можно воспользоваться тернарным оператором ?:
echo ( $a ? 'не пусто' : '' );
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы