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

发布于 2024-11-02 06:05:25 字数 338 浏览 2 评论 0原文

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

“如果 NOT 第 92 页,OR 页面父级是 NOT 92.”

这是我所拥有的:

post_parent !== 92) { echo $foo; } ?>

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

任何帮助将不胜感激。

干杯!

I am trying to do the following with wordpress:

"If is NOT page 92, OR page parent is NOT 92."

Here is what I have:

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

If I use one or the other as condition, it works; When I add the second condition, it breaks.

Any help would be well appreciated.

Cheers!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

油焖大侠 2024-11-09 06:05:25

您的问题可能是使用 ||而不是 &&。

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

假设您在第 92 页上,那么您当前的代码将执行以下操作:

if (false || true)

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

如果您位于 92 的子页面上,则相反:

if (true || false)

如果您位于非 92 的页面或 92 的子页面上,则您会得到:

if (true || true)

因此,无论您在哪个页面,它总是会触发,因为 ||只需要一个 true 语句即可使整个条件为 true。

因此,将代码更改为

post_parent !== 92) { echo $foo; } } ?>

这给出了如下逻辑运行:

Page 92:

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

92 的子页面:

if(true && false) //false, 不会触发

一些不相关的页面:

if(true && true) //true, 将会触发

Your problem is probably in using || instead of &&.

You want it to echo if you are not on page 92 AND you are not in a subpage of page 92.

Let's say you're on page 92, then your current code does this:

if (false || true)

because 92 is not a parent of page 92. Thus, since one condition is true, it triggers.

If you're on a subpage of 92, then it's the opposite:

if (true || false)

If you're on a page that isn't 92 or a subpage of 92, then you get:

if (true || true)

So, it will always trigger, regardless of what page your on, because || requires only a single true statement for the entire condition to be true.

Hence, change your code to

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

Which gives a logical run down like:

Page 92:

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

Subpage of 92:

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

Some unrelated page:

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

(り薆情海 2024-11-09 06:05:25

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

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

You have an additional equals sign in your statement. The operator !== is for boolean checks. Since post_parent will automatically resolve to "true" since it has a value, it will always echo "foo". Change it to the following.

<?php if (!is_page(92) || $post->post_parent != 92) { echo $foo; } ?>
云柯 2024-11-09 06:05:25

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

It's only != not !==, only one equal

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文