PHP 括号少 IF 条件不接受多个语句

PHP bracket less IF condition not accepting more than one statement

我从来都不喜欢控制结构中的括号,直到今天我才意识到它如何只接受括号内的一个语句 less 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;

或任何其他编写同一段代码的方式?

看看这个问题的答案:

PHP conditionals, brackets needed?

没错,是 PHP,不是你的 IDE!

这对于所有使用括号而不是缩进来指定代码块的编程语言来说是完全正常的。没有方括号,解释器就无法知道哪些行是 if 块的一部分,哪些不是。单行 if 块是一种方便的快捷方式:如果您不包含任何括号,PHP 像许多其他语言一样会将 if 语句后面的单行视为 if 块的主体。

注意 PHP if 语句也有另一种语法,使用冒号而不是括号,但这是另一天的故事。

这就是 php 的工作原理。如果您不在 if 语句两边加上括号,则只有下一条语句在 if 块中,所有其他后续语句都在它之外。但是因为你在它后面有一个 else 块,你会得到一个错误。

(顺便说一句:您在 if 块中进行赋值,所以这将始终为真)

看看这两个例子:

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