php条件语句:不等于运算符
我正在尝试使用wordpress执行以下操作: “如果是非第92页,或父页是非第92页。” 以下是我所拥有的: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
如果我使用其中一个作为条件,它会起作用;当我添加第二个条件时,它将中断
任何帮助都将不胜感激
干杯 只是不是,只有一个相等的不是,只有一个等号语句中还有一个等号。接线员!==用于布尔检查。因为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()函数的行为和返回的结果感到好奇。这可能是导致你的条件测试失败的原因。你是对的!我忘了,如果满足一个条件,就会触发条件..哦。我想我在上面的评论中已经澄清了这一点。啊,是的。你是对的!我放弃