【发布时间】:2015-08-26 10:45:05
【问题描述】:
这是一个荒谬的问题......主要是希望证明我的老程序员朋友错了。
我写这样的 if 语句(其中带有 AND/OR 的语句),我一直都知道...
if($something == $something OR $whatever == $whatever){stuff...}
我的老朋友是这样做的……
if(($something == $something) OR ($whatever == $whatever)){stuff...}
我以前从未见过有人这样做。它运行没有错误。我告诉他那是无效的代码,但他耸耸肩说它可以运行。它有效吗?我的意思是......它确实运行。额外的字符,所以我的仍然获胜。这是用 PHP 做的旧方法吗?我找不到关于后一种风格的任何信息。只是一种古玩。谢谢。
【问题讨论】:
-
这是一回事,因为
==比OR有先例。如果这是分配,那可能是个问题:if($a = 'now' && $b = $a.' what')$test = $b;与if(($a = 'now') && ($b = $a.' what'))$test = $b;。 -
您使用更多的括号来避免运算符的优先级问题。
-
两者都可以正常运行。这是评估的过程,因此有或没有对单个逻辑运算符的影响很小。我还要说你们都错了,应该是
||和PSR-2 -
通常的做法是使用 ||而不是 OR 和 && 而不是 AND
-
我总是使用第二个选项来获得更多的理解和分组。