我有一个非常奇怪的语法问题。有人能告诉我这是为什么不工作:PHP逻辑运算符
if (! is_single() || ! is_archive())
但这是: if (! is_single() || is_archive())
,我怎么能拿第一条语句工作? 在此先感谢!
编辑:当答案出现时,我还在编辑问题。无论如何,我应该提到我的意思是一种语法。我意识到这两个陈述的逻辑是不一样的。所以!
必须放在外面。多谢你们。
我有一个非常奇怪的语法问题。有人能告诉我这是为什么不工作:PHP逻辑运算符
if (! is_single() || ! is_archive())
但这是: if (! is_single() || is_archive())
,我怎么能拿第一条语句工作? 在此先感谢!
编辑:当答案出现时,我还在编辑问题。无论如何,我应该提到我的意思是一种语法。我意识到这两个陈述的逻辑是不一样的。所以!
必须放在外面。多谢你们。
!
(negate)运算符在PHP中具有更高的precedence。这就是为什么你需要把你的第二个表达式括在括号里:
if (! (is_single() || is_archive()))
让它按照你的期望工作。
谢谢你,这就是我正在寻找的! – charlenemasters
使用此
if (!(is_single() || is_archive()))
你说这个代码是不工作...
if (! is_single() || ! is_archive())
...但这是:
if (! is_single() || is_archive())
但这不是一个逻辑。
NOT is_single() OR NOT is_archive()
NOT is_single() OR is_archive()
当您使用第一个会发生什么声明?你的问题 – aynber
不清楚,你想实现什么?我想你需要'&&'而不是'||' – 2013-08-28 13:27:41
你想要做什么?用我们的文字写下你的逻辑。 –