我刚刚浏览了一个论坛,有人问起他们在网上找到的一个PHP文件。它在代码中有几个类似的地方:
if ($REMOTE_ADDR == "") $ip = "no ip"; else $ip = getHostByAddr($REMOTE_ADDR);
我一直认为,如果条件为真,则需要用括号括起您想要做的事情。是否有其他选择,例如,如果它与您不在同一行上?
还有一行类似这样的代码:if ($action != ""): mail("$adminaddress","Visitor Comment from YOUR SITE",
我的直觉是说这不会起作用,但我也不知道它是不是一个过时的PHP文件,它过去是有效的吗?
发布于 2008-12-19 15:27:08
你可以这样做if else语句:
<?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;
?>
使用替代语法,您也可以退出解析模式,如下所示:
<?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;
?>
发布于 2008-12-19 15:31:50
更详细一点,大括号是可选的原因是语法看起来像这样:
if(CONDITION) BLOCK
[elseif(CONDITION) BLOCK]
[else BLOCK]
块可以是一条语句:
foo();
或者它可以是一组用大括号括起来的语句:
{
foo();
bar();
}
发布于 2008-12-19 15:28:04
在PHP中,大括号(不是方括号)是可选的,就像在大多数类似C的语法中一样。也许您正在考虑Perl;对于这种形式的if语法,Perl是必需的。
冒号是PHP支持的另一种控制结构形式。我讨厌它,但有些人(显然,特别是模板系统设计师)喜欢它。
https://stackoverflow.com/questions/381259
复制相似问题