在if语句中使用括号

kba*_*eur 2 php if-statement

我正在学习PHP开发作为初学者的过程我想问一下关于if与isset一起使用的问题.这里有两个代码:

这两段代码之间有什么区别:

if ( (isset($_GET['id'])) && (is_numeric($_GET['id'])) )
Run Code Online (Sandbox Code Playgroud)

和:

if (isset($_GET['s']) && is_numeric($_GET['s']))
Run Code Online (Sandbox Code Playgroud)

在第一部分中,isset()并且is_numeric()在另一组括号内.

但是在第二次它们位于if()括号内.

第一个和第二个片段之间有什么区别吗?

提前感谢任何解释和澄清.

Wil*_*ill 5

不,没有任何区别.

附加括号((...))的目的是指定特定的操作顺序,例如在数学中.作为一般规则,如果使用太多括号,则不会发生任何不良情况,但它可能会使您的代码不那么清晰.您编写的两个代码段完全相同.我认为第二个例子更清洁.

这是您需要它们的地方:

if ((conditionA || conditionB) && (conditionC || condition D)) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

它们还可以增加数学表达式的清晰度:

$x = $y * 7 + 3 / 2;

$x = ($y * 7) + (3 / 2);
Run Code Online (Sandbox Code Playgroud)

这两个表达式完全相同,但括号使得更容易看到发生了什么,而不记住操作的顺序.

有时,您希望使用不同的操作顺序,并且需要它们:

$x = $y * (7 + 3) / 2;
Run Code Online (Sandbox Code Playgroud)