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

php条件语句:不等于运算符,php,wordpress,if-statement,conditional-statements,Php,Wordpress,If Statement,Conditional Statements,我正在尝试使用wordpress执行以下操作: “如果是非第92页,或父页是非第92页。” 以下是我所拥有的: 如果我使用其中一个作为条件,它会起作用;当我添加第二个条件时,它将中断 任何帮助都将不胜感激 干杯 只是不是,只有一个相等的不是,只有一个等号语句中还有一个等号。接线员!==用于布尔检查。因为post_parent会自动解析为“true”,因为它有一个值,所以它总是回显“foo”。将其更改为以下内容 <?php if (!is_page(92) || $post->pos

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

“如果是第92页,父页是第92页。”

以下是我所拥有的:

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

任何帮助都将不胜感激


干杯

只是不是,只有一个相等的不是,只有一个等号

语句中还有一个等号。接线员!==用于布尔检查。因为post_parent会自动解析为“true”,因为它有一个值,所以它总是回显“foo”。将其更改为以下内容

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

您的语句中还有一个等号。接线员!==用于布尔检查。因为post_parent会自动解析为“true”,因为它有一个值,所以它总是回显“foo”。将其更改为以下内容

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

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

如果您不在第92页上,并且您不在第92页的子页上,您希望它能够响应

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

if(false | | true)

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

如果你在92的子页面上,那么它是相反的:

if(真| |假)

如果您所处的页面不是92或92的子页面,则您会得到:

if(true | true)

所以,不管你在哪一页,它都会被触发,因为| |只需要一个true语句,整个条件就为true

因此,将代码更改为

它给出了一个逻辑运行,如:

第92页:

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

92分页:

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

一些不相关的页面:


如果(true&&true)//true,将触发

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

如果您不在第92页上,并且您不在第92页的子页上,您希望它能够响应

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

if(false | | true)

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

如果你在92的子页面上,那么它是相反的:

if(真| |假)

如果您所处的页面不是92或92的子页面,则您会得到:

if(true | true)

所以,不管你在哪一页,它都会被触发,因为| |只需要一个true语句,整个条件就为true

因此,将代码更改为

它给出了一个逻辑运行,如:

第92页:

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

92分页:

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

一些不相关的页面:



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

您是否检查了两者的值,以确保它们不是相同的值?为了澄清语言歧义,您的意思是“如果页面不是92或者父项不是92”,而不是“如果页面和父项都不是92”,对吗?(对于后者,您需要
&&
而不是
| |
)@Cyclone我的预期条件无法过滤。(变量foo显示在我想将其从中排除的页面上)@wisegay这是正确的。(第一句话)你有没有检查过这两个值,以确保它们不是相同的值?只是为了澄清语言歧义,你的意思是“如果页面不是92或者父项不是92”,而不是“如果页面和父项都不是92”,对吗?(对于后者,您需要
&&
而不是
| |
)@Cyclone我的预期条件无法过滤。(变量foo显示在我想将其从中排除的页面上)@wisegay这是正确的。(第一句话)看:'不完全相同'我不认为这是问题所在。它可能是!==我也是是文本类型检查。请参阅:“不相同”我认为这不是问题所在。它可能是!==我也是是文本类型检查。不正确。!==适用于所有数据类型。当然,这可能是他的问题,如果
$post->post\u parent
返回一个字符串而不是int,那么它就不会工作。同意-我忘记了存在值的变量将自动解析为“true”。不,不,不!==检查等效性和类型<代码>“92”!==92是真的,因为一个是字符串,另一个是整数。
92!==92
为false,因为它们都是整数,并且彼此等效<代码>“92”!=92
为false,因为它不会检查类型,并且会对类型进行调整,以确定它们是否等效。然后我对is_page()函数的行为和返回的结果感到好奇。这可能是导致条件失败的原因。不是真的。!==适用于所有数据类型。当然,这可能是他的问题,如果
$post->post\u parent
返回一个字符串而不是int,那么它就不会工作。同意-我忘记了存在值的变量将自动解析为“true”。不,不,不!==检查等效性和类型<代码>“92”!==92是真的,因为一个是字符串,另一个是整数。
92!==92
为false,因为它们都是整数,并且彼此等效<代码>“92”!=92
为false,因为它不会检查类型,并且会对类型进行调整,以确定它们是否等效。然后我对is_page()函数的行为和返回的结果感到好奇。这可能是导致你的条件测试失败的原因。你是对的!我忘了,如果满足一个条件,就会触发条件..哦。我想我在上面的评论中已经澄清了这一点。啊,是的。你是对的!我放弃