首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP条件,需要括号吗?

PHP条件,需要括号吗?
EN

Stack Overflow用户
提问于 2008-12-19 15:22:26
回答 6查看 28.2K关注 0票数 34

我刚刚浏览了一个论坛,有人问起他们在网上找到的一个PHP文件。它在代码中有几个类似的地方:

if ($REMOTE_ADDR == "") $ip = "no ip"; else $ip = getHostByAddr($REMOTE_ADDR);

我一直认为,如果条件为真,则需要用括号括起您想要做的事情。是否有其他选择,例如,如果它与您不在同一行上?

还有一行类似这样的代码:if ($action != ""): mail("$adminaddress","Visitor Comment from YOUR SITE",

我的直觉是说这不会起作用,但我也不知道它是不是一个过时的PHP文件,它过去是有效的吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 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;
?>
票数 76
EN

Stack Overflow用户

发布于 2008-12-19 15:31:50

更详细一点,大括号是可选的原因是语法看起来像这样:

if(CONDITION) BLOCK
[elseif(CONDITION) BLOCK]
[else BLOCK]

块可以是一条语句:

foo();

或者它可以是一组用大括号括起来的语句:

{
    foo();
    bar();
}
票数 10
EN

Stack Overflow用户

发布于 2008-12-19 15:28:04

在PHP中,大括号(不是方括号)是可选的,就像在大多数类似C的语法中一样。也许您正在考虑Perl;对于这种形式的if语法,Perl是必需的。

冒号是PHP支持的另一种控制结构形式。我讨厌它,但有些人(显然,特别是模板系统设计师)喜欢它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/381259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档