任何想法为什么这不起作用?在IF中使用OR
if($page->Slug != 'water-filters' || $page->Slug != 'pet-care' || $page->Slug != 'books') {
//do something
}
任何想法为什么这不起作用?在IF中使用OR
if($page->Slug != 'water-filters' || $page->Slug != 'pet-care' || $page->Slug != 'books') {
//do something
}
我认为你的意思是AND而不是OR beca使用你使用不等于。
通过使用不等于你的方式声明将永远是真实的,如果$ page-> Slug等于'水过滤器'它不等于'pet-care',因此if语句作为一个整体返回true。
if($page->Slug != 'water-filters' && $page->Slug != 'pet-care' && $page->Slug != 'books')
{
//do something
}
固定!感谢队友,把它弄错了。这是在我的脑海:) – Andy 2010-10-08 08:01:51
尝试
== or == or ==
或
!= and != and !=
: -D
谢谢,就是这样:) – Andy 2010-10-08 08:04:00
!(==或==或==):) – 2010-10-08 08:23:56
如果弹头是不是“水过滤器”或不是“宠物护理”或不是“书” ......
好吧,如果这是其中的一个,或任何其他价值,它的定义不是其他两个(或不是全部三个)。所以这种情况总是如此。
我猜“做某事”总是得到执行?
if($page->Slug != 'water-filters' || $page->Slug != 'pet-care' || $page->Slug != 'books')
{
//do something
}
对于$ PAGE->弹头的任何值,它总是会不等于这些三个条件之一,因此至少一个(在技术上,至少两个)的发言将永远为真。因为只要三个陈述中的一个是真的,你就使用'OR',整个事情就会成真。
因此,这基本上等于在说
if (true) {
//do something
}
除了什么其他的上面已经说过,这是正确的也是,试试这个语法的可读性。
if(!in_array($page->Slug, array('water-filters', 'pet-care', 'books')) {
// Do something
}
感谢这是一个很好的方式做到这一点。 – Andy 2010-10-29 21:52:54
定义*这不是工作*请。为我完美工作:http://codepad.org/9tvMPsH7你必须告诉你**想要发生什么**。 – 2010-10-08 07:57:19
什么是$ page-> Slug和实际发生了什么?如果我在||之后删除所有内容,则为 – fabrik 2010-10-08 07:57:23
它工作,即只有一张支票。如果我使用OR,它不会工作... – Andy 2010-10-08 07:57:57