2013-08-05 72 views
-3

这是正确的吗?不知怎的,它应该变得更简单吗?如果有更多的"("")",这是一个安全的'如果'的声明适用于所有情况?如何判断布尔IF语句的“(”和“)”是否正确?

if (empty($depart_raw) || empty($arrival_raw)) { 
    return ""; 
} 

我问,因为我感到困惑着如何知道有多少"("")"围绕这些类型的语句。为了清楚起见,以上是试图检查两个变量中的任何一个是否为空然后返回空白的函数。

+0

其取决于逻辑运算符的检查和分组数量。 – 2013-08-05 07:42:22

+3

这样的问题存在的问题是,我们现在可以回答的是“是”或“否”。您是否尝试过代码?它有用吗?如果你没有信心说出它是否真的做到了你想要的,写一个单元测试 – Gordon

+2

这是正确和最佳的。尽管如此,我会质疑使用“空”。阅读此:[权威指南PHP的isset和空](http://kunststube.net/isset/) – deceze

回答

4

if语句需要一组括号:

if (...) 

无论内的任何...表达需要括号或不依赖于表达是什么。 empty 功能 语言结构要求其自己括号内为函数调用的部分:由操作员不需要括号加入

empty($a) 

两个表达式;这只是罚款:

$a || $b 
empty($a) || empty($b) 

如果您有多个运营商,您可能需要使用影响他们的括号分组的优先级,就像在数学:

(1 + 2) * 3 
1 + (2 * 3) 
($a || $b) && $c 
$a || ($b && $c) 

根据需要调整。

+0

'1 +(2 * 3)'和'$ a || ($ b && $ c)'不需要括号:)关于优先级的更多内容:http://php.net/manual/en/language.operators.precedence.php – AmazingDreams

+2

我在这里想象一个例子! :P – deceze

+0

我知道,我确实使用括号来表示可读性。 – AmazingDreams