PHP逻辑运算符

PHP逻辑运算符,php,logical-operators,Php,Logical Operators,我有一个非常奇怪的语法问题。有人能告诉我为什么这不起作用吗: 如果(!is_single()| |!is_archive()) 但这是: 如果(!is_single()| is_archive()) 我怎样才能让第一句话起作用? 提前谢谢 编辑:答案出来时,我还在编辑问题。无论如何,我应该提到我指的是a语法。我知道这两种说法的逻辑是不一样的。所以必须放在外面。谢谢大家。(否定)运算符在PHP中具有更高的值。这就是为什么需要将第二个表达式括在括号中: if ( ! (is_single() ||

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

如果(!is_single()| |!is_archive())

但这是:
如果(!is_single()| is_archive())

我怎样才能让第一句话起作用? 提前谢谢

编辑:答案出来时,我还在编辑问题。无论如何,我应该提到我指的是a语法。我知道这两种说法的逻辑是不一样的。所以
必须放在外面。谢谢大家。

(否定)运算符在PHP中具有更高的值。这就是为什么需要将第二个表达式括在括号中:

if ( ! (is_single() || is_archive()) )
要让它按您的期望工作。

请使用此选项

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

你说这个代码不起作用

  • 如果(!is_single()| |!is_archive())
  • ……但这是:

  • 如果(!is_single()| is_archive())
  • 但逻辑不同

  • 不是单一的(不是存档的(

  • 不是单一的()是存档的()


  • 当你使用第一句话时会发生什么?你的问题不清楚,你想实现什么?我想你需要
    &&
    而不是
    |
    你想做什么?用文字写下你的逻辑。当你在代码中加入以下内容时,你会得到什么:
    echo var_dump(is_single()),'',var_dump(is_archive())如果它们都是真的,那么这两个条件都是假的。这两个语句将给出不同的结果谢谢这就是我要找的!