PHP的条件,括号需要?
我只是浏览一个论坛,有人问他们在网上find的PHP文件。 代码中有几个这样的点:
if ($REMOTE_ADDR == "") $ip = "no ip"; else $ip = getHostByAddr($REMOTE_ADDR);
如果条件成立,我一直认为括号需要包含你想要做的事情。 有没有其他的select,比如,如果它不在同一行?
还有另外一行: if ($action != ""): mail("$adminaddress","Visitor Comment from YOUR SITE",
我的直觉是说这不起作用,但我也不知道它是否是一个过时的PHP文件,它曾经工作?
你可以这样做:
<?php if ($something) { echo 'one conditional line of code'; echo 'another conditional line of code'; } if ($something) echo 'one conditional line of code'; if ($something) echo 'one conditional line of code'; echo 'a NON-conditional line of code'; // this line gets executed regardless of the value of $something ?>
然后你也可以用另一种语法来编写if – else:
<?php if ($something): echo 'one conditional line of code'; echo 'another conditional line of code'; elseif ($somethingElse): echo 'one conditional line of code'; echo 'another conditional line of code'; else: echo 'one conditional line of code'; echo 'another conditional line of code'; endif; ?>
使用替代语法,您也可以像这样parsing模式:
<?php if ($something): ?> one conditional line of code<br /> another conditional line of code <?php else: echo "it's value was: $value<br />\n"; ?> another conditional line of code <?php endif; ?>
但这真的很乱,我不会推荐它的使用(除了模板逻辑)。
并完成:
<?php $result = $something ? 'something was true' : 'something was false'; echo $result; ?> equals <?php if ($something) { $result = 'something was true'; } else { $result = 'something was false'; } echo $result; ?>
为了进一步细化,大括号是可选的原因是语法如下所示:
if(CONDITION) BLOCK [elseif(CONDITION) BLOCK] [else BLOCK]
BLOCK可以是一个单独的声明:
foo();
或者它可以是一个大括号的语句组:
{ foo(); bar(); }
我的想法是
if ($REMOTE_ADDR == "") $ip = "no ip"; else $ip = getHostByAddr($REMOTE_ADDR);
是有效的,但比以下更难以阅读:
if ($REMOTE_ADDR == "") { $ip = "no ip"; } else { $ip = getHostByAddr($REMOTE_ADDR); }
大括号(不是括号)在PHP中是可选的,就像大多数C语言一样。 也许你正在考虑Perl; 他们需要那里,如果语法的forms。
冒号是PHP支持的一种替代控制结构forms。 我讨厌它,但有些人(特别是模板系统devise者)显然喜欢它。
是的,不包括大括号是允许的,虽然很多时候我听说了2个不使用该语法的理由:
- 阅读起来很难。 另一个程序员不太明显。
- 如果你想在if里添加一些东西,那么在你编写代码之后,你需要添加更难的大括号,因为大多数编辑器都会为你添加大括号。
另外,是的,冒号语法是有效的。 替代品可以在这里find: http : //php.net/manual/en/control-structures.alternative-syntax.php
brackets are needed to enclose what you want to do if the condition is true
我想不出任何需要这样的语言