-1

我有一个非常奇怪的语法问题。有人可以告诉我为什么这不起作用:

if ( ! is_single() || ! is_archive() )

但这是: if ( ! is_single() || is_archive() )

以及如何使第一个语句起作用?提前致谢!

编辑:当答案出现时,我仍在编辑问题。无论如何,我应该提到我的意思是 a 语法。我知道这两个语句的逻辑是不一样的。所以!必须放在外面。多谢你们。

4

3 回答 3

3

!(negate) 运算符在 PHP 中具有更高的优先级。这就是为什么您需要将第二个表达式括在括号中:

if ( ! (is_single() || is_archive()) )

让它按您的预期工作。

于 2013-08-28T13:29:41.020 回答
1

用这个

if (!(is_single() || is_archive()))
于 2013-08-28T13:30:37.550 回答
0

你说这段代码不起作用......

  1. if ( ! is_single() || ! is_archive() )

...但这是:

  1. if ( ! is_single() || is_archive() )

但这不是同一个逻辑。

  1. 不是 is_single()不是 is_archive()

  2. 不是 is_single()is_archive()

于 2013-08-28T13:38:36.833 回答