我在php中有一个条件语句,当我添加一个OR逻辑运算符时,它不能按预期工作,在下面的示例中,它返回我试图阻止它执行的代码。
单独地,每个声明在它们在一起时不起作用,因为我在下面有它们。重复每个条件的代码似乎效率低下。
if (!is_sp_post_type('profile') || !is_category(array('previews','reviews')) || !is_single(array('previews','reviews'))) {
//do stuff
};
我已经阅读了这个答案Is there a short-circuit OR in PHP that returns the left-most value?,但我仍然坚持
答案 0 :(得分:1)
只需使用AND
(&&
)运算符即可。
OR
运算符只需要一个true来执行条件,而AND
运算符需要所有语句都为真。
我不是百分之百确定您要实现的目标,但我还建议您重新审视一下NOT
(!
)运算符以及它在代码中的使用方式
答案 1 :(得分:1)
我很傻,应该使用&&
if (!is_sp_post_type('profile') && !in_category(array('previews','reviews')) && !is_single(array('previews','reviews'))) {
//do stuff
}
感谢Pieter Goosen指出这一点 - 他删除了答案,但我无法选择它。