我有一个非常奇怪的语法问题。有人可以告诉我为什么这不起作用:
if ( ! is_single() || ! is_archive() )
但这是:
if ( ! is_single() || is_archive() )
以及如何让第一个声明发挥作用? 提前谢谢!
编辑:答案来的时候我还在编辑问题。无论如何,我应该提到我的意思是语法。我知道这两个陈述的逻辑是不一样的。所以!
必须放在外面。谢谢你们。
答案 0 :(得分:3)
!
(否定)运算符在PHP中具有更高的precedence。这就是为什么你需要将第二个表达式括在括号中的原因:
if ( ! (is_single() || is_archive()) )
让它像你期待的那样工作。
答案 1 :(得分:1)
使用此
if (!(is_single() || is_archive()))
答案 2 :(得分:0)
你说这段代码不起作用......
if ( ! is_single() || ! is_archive() )
......但这是:
if ( ! is_single() || is_archive() )
但这不是同一个逻辑。
NOT is_single()或 NOT is_archive()
NOT is_single()或 is_archive()