IF声明不与OR一起使用

时间:2013-01-24 23:21:23

标签: php

由于一些奇怪的原因,我不能在我的生活中调试这个.. $ this-> input-> post('post_page')= 10 ....我回显变量,它确实在屏幕上打印10。 当它应该是真的时,它会一直返回false。 所以...有人可以帮我解决这个问题吗?我尝试在每个检查周围放置单个括号并更改||或者......仍然没有。

尽管如此,这是我的代码:

if($this->input->post('post_page') <> 10 
                || $this->input->post('post_page') <> 25 
                || $this->input->post('post_page') <> 50 
                || $this->input->post('post_page') <> 75) {
            return false;
        }

4 个答案:

答案 0 :(得分:5)

&LT;&GT;相当于NOT EQUAL。

10不等于25因此它将进入if语句并返回false;

事实上,它总是会输入if语句而不管数字

你可以这样做:

if($this->input->post('post_page') <> 10 
                && $this->input->post('post_page') <> 25 
                && $this->input->post('post_page') <> 50 
                && $this->input->post('post_page') <> 75) {
            return false;
        }

在伪代码中:

IF 
MY NUMBER IS NOT 10 
AND IT IS NOT 25
AND IT IS NOT 50 
AND IT IS NOT 75
    RETURN FALSE

甚至更好:

$allowedNumbers =  array(10,25,50,75);
if(!in_array($this->input->post('post_page'), $allowedNumbers)) {
    return false;
}

也更容易将新项目添加到列表中。您添加到数组的任何数字都不会返回false。

这个的PSEUDO代码:

ALLOWED NUMBERS ARE 10,25,50,75
IF(MYNUMBER IS NOT IN THE LIST OF ALLOWED NUMBERS)
    RETURN FALSE

答案 1 :(得分:1)

我认为你应该使用

if(!($this->input->post('post_page') == 10 
                || $this->input->post('post_page') == 25 
                || $this->input->post('post_page') == 50 
                || $this->input->post('post_page') == 75)) {
            return false;
}

答案 2 :(得分:0)

以布尔值翻译: 虚假或真实,真实或真实。 表达式为true,因此返回false。

答案 3 :(得分:0)

(                          #
   (A is not B)            #  IS ALWAYS TRUE
   OR (A is not C)         #  --------------------------
   OR (A is not D)         #  Unless 2 conditions (AND):
   OR (A is not E)         #    . A is not B
)                          #    . B = C = D = E

所以是的,在你的情况下,这总是假的,对不起你。