当前位置: 首页 > 面试题库 >

PHP条件语句,是否需要括号?

萧繁
2023-03-14
问题内容

我只是在浏览一个论坛,有人问他们在网上找到的PHP文件。在代码中有几个这样的地方:

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

我一直认为,如果条件为真,则需要用括号括起来。还有其他选择吗,例如您是否不在同一行?

还有另一行是这样的: 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;
?>

使用备用语法,您也可以退出解析模式,如下所示:

<?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;
?>


 类似资料:
  • 问题内容: 我曾经听说在JavaScript中将花括号放在单行语句中可能有害。我不记得这个推理了,谷歌搜索并没有太大帮助。 是否有什么使将JavaScript中的所有语句括在大括号中的好主意呢? 我问,因为每个人似乎都这样做。 问题答案: 没有 但是推荐。如果您要扩展该语句,则将需要它们。 这是完全有效的 但是,强烈建议您始终使用花括号,因为如果您(或其他人)曾经扩展过该语句,则将需要使用该花括号

  • 问题内容: 在PDO :: Prepare页上指出: “并且通过消除对参数的手动引用来帮助防止SQL注入攻击” 知道这一点,是否有一个像mysql_real_escape_string()这样的PHP函数可以照顾到PDO的转义?还是PDO会为我做好一切转义? 编辑 我现在意识到我问了一个错误的问题。我的问题确实是,“ PDO会为我做什么?” 我现在通过这些答案意识到,它实际上仅消除了对引号进行转义

  • 问题内容: 以下语句在我的数据库中有效: 但这不是: 我得到了错误: 错误:“ my_table.column_a”列必须出现在GROUP BY子句中或在聚合函数中使用 有用的注释:该线程:SQL子句“ GROUP BY1”是什么意思? 讨论“ ”的含义。 更新: 我感到困惑的原因是因为我经常看到如下情况: 那里是 没有 说法。是否总是需要跟着 ?在这种情况下,该语句是否隐含? 问题答案: 这个错

  • 问题内容: 对于我因此遇到的所有Dockerfile(虽然数量不多),它们所有人都使用了子句作为现有映像的基础,即使它是。 这个条款是必需的吗?有没有子句的Dockerfile是否可能?这样创建的容器可以执行任何操作吗? 编辑 我读 没有FROM指令的Dockerfile没有父映像,称为基本映像。 https://docs.docker.com/glossary/?term=parent%20im

  • 问题内容: 对于此查询,有必要使用吗? 任何改进或查询是否还好? 在这种情况下,查询速度很重要。 问题答案: 否,准备好的查询(正确使用时)将确保对数据进行正确的转义以进行安全查询。您有点正确地使用它们,只需要更改一件事。因为您使用的是“?” 占位符,最好通过execute方法传递参数。 请注意,如果要将其输出到页面,数据库清理并不意味着可以在HTML中安全显示,因此也可以在其上运行htmlspe

  • 问题内容: 假设我们在Python 3.x中(我猜在Python 2.6和Python 2.7中也)具有以下功能: 如果运行它们,我们将得到: 这三个函数提供相同的结果(值和类型),它们似乎是等效的。 但是,其中哪个陈述更正确? 这些定义中是否有副作用? 相同的问题适用于以下情况,并返回了多个值: 在这种情况下,每个函数都返回一个 元组 ,但是我的问题仍然保持不变。 问题答案: Python中的括