php条件语句:不等于运算符

时间:2011-04-20 14:41:45

标签: php wordpress if-statement conditional-statements

我正在尝试使用 wordpress 执行以下操作:

“如果第92页,页面的父级 92。”

这就是我所拥有的:

<?php if (!is_page(92) || $post->post_parent !== 92) { echo $foo; } ?>

如果我使用其中一种作为条件,它会起作用;当我添加第二个条件时,它会中断。

任何帮助都将受到赞赏。

干杯!

3 个答案:

答案 0 :(得分:3)

您的问题可能在于使用||而不是&amp;&amp;。

如果您不在第92页 AND ,您希望它回显您不在第92页的子页面中。

让我们说你在第92页,然后你当前的代码执行此操作:

if (false || true)

因为92不是第92页的父节点。因此,由于一个条件为真,它会触发。

如果你在92的子页面上,则相反:

if (true || false)

如果您所在的页面不是92或子页面为92,那么您将获得:

if (true || true)

因此,无论您打开什么页面,它都将始终触发,因为||只需要一个真实的陈述就可以使整个条件成立。

因此,请将代码更改为

<?php if (!is_page(92) && $post->post_parent !== 92) { echo $foo; } ?>

这给出了逻辑运行:

第92页:

if(false && true) //false, won't trigger

92的子页面:

if(true && false) //false, won't trigger

一些不相关的页面:

if(true && true) //true, will trigger

答案 1 :(得分:1)

您的陈述中还有一个额外的等号。运算符!==用于布尔检查。由于post_parent将自动解析为“true”,因为它有一个值,它将始终回显“foo”。将其更改为以下内容。

<?php if (!is_page(92) || $post->post_parent != 92) { echo $foo; } ?>

答案 2 :(得分:0)

它只是!=不!==,只有一个相等