我从来没有成为控制结构中括号的粉丝,直到今天我才意识到它如何只接受一个括号内的一个语句,如果我有多个语句就会抛出语法错误。这是PHP的工作方式,还是我的IDE出错?
显然错误很明显,但我只是想确保这是正常的。
如果您有其他任何其他替代语法的链接,请告诉我。
贝娄只是我从项目中粘贴的东西和语法错误的例子。
if($this->reel3 = 1)
parent::addCash($this->$bet*2);
print(parent::getCash()); // < Line throwing the syntax error
else
// TODO
编辑(FURTHERMORE)
在看了一些答案和评论后,我想知道它是如何在专业环境中完成的,我知道这更多是关于品味的,但我想从专业人士那里知道语法的风格是否重要?
将
if(condition)
{
//something
} else {
//something
}
优于
if(condition):
//something
else:
//something
endif;
或编写同一段代码的任何其他方式?
答案 0 :(得分:3)
这就是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
答案 1 :(得分:2)
答案 2 :(得分:2)
这是使用括号而不是缩进来指定代码块的所有编程语言的完全正常。如果没有括号,解释器就无法知道哪些行是if块的一部分,哪些不是。单行if块是一个方便的快捷方式:如果你不包含任何括号,PHP就像许多其他语言一样,将if行语句后面的单行直接视为if块的主体。
注意PHP确实有if语句的替代语法,使用冒号而不是括号,但这是另一天的故事。