структура управления — PHP скобка меньше, если условие IF не принимает более одного утверждения

Я никогда не был поклонником скобок в управляющих структурах, и только сегодня я понял, как он принимает только один оператор в скобках меньше, если условие, если у меня более одного оператора, он выдаст синтаксическую ошибку. Так работает PHP или что-то не так с моей IDE?

Очевидно, ошибка ясна, но я просто хочу убедиться, что это нормально.

Если у вас есть какие-либо другие ссылки на другой альтернативный синтаксис, дайте мне знать, пожалуйста.

Ниже приведено только то, что я сделал из проекта и примера синтаксической ошибки.

if($this->reel3 = 1)
parent::addCash($this->$bet*2);
print(parent::getCash()); // < Line throwing the syntax error
else
// TODO

РЕДАКТИРОВАТЬ (ДАЛЕЕ БОЛЬШЕ)

Посмотрев на некоторые ответы и комментарии, мне стало интересно, как это делается в профессиональной среде, я знаю, что это больше касается вкуса, но я хочу узнать от профессионала, имеет ли значение стиль синтаксиса?

Было бы

if(condition)
{
//something
} else {
//something
}

быть лучше чем

if(condition):
//something
else:
//something
endif;

или любой другой способ написания того же куска кода?

3

Решение

Вот как работает PHP. Если вы не ставите скобки вокруг своего оператора if, только следующий оператор находится в блоке if, все остальные последующие операторы находятся вне его. Но так как у вас есть блок else после него, вы получите ошибку.

(Кстати: вы делаете назначение в блоке if, так что это всегда будет верно)

Посмотрите на эти 2 примера:

if($this->reel3 = 1)
parent::addCash($this->$bet*2); //In the if statement
print(parent::getCash());  //Outside the if statement
else

Такой же как:

if($this->reel3 = 1) {
parent::addCash($this->$bet*2);
}
print(parent::getCash());
//^^^^^ I think here it's more clear to see that this will give you a error, since it's between the if and else block which is not allowed
else { }

Для получения дополнительной информации о структуре управления, если см. Руководство: http://php.net/manual/en/control-structures.if.php

3

Другие решения

Посмотрите на ответ на этот вопрос:

PHP условные, скобки нужны?

И да, это PHP, а не ваша IDE!

2

Это совершенно нормально для всех языков программирования, в которых для обозначения блоков кода используются скобки, а не отступы. Без скобок интерпретатор не сможет узнать, какие строки являются частью блока if, а какие нет. Однострочный if-блок — это удобное сокращение: если вы не включите скобки, PHP, как и многие другие языки, будет обрабатывать одну строку, следующую непосредственно за оператором if, как тело блока if.

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

2
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector