OR逻辑运算符的多条件php不返​​回false

时间:2014-10-06 11:21:48

标签: php wordpress conditional

我在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?,但我仍然坚持

2 个答案:

答案 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指出这一点 - 他删除了答案,但我无法选择它。