PHP如果OR的状态表现不如预期[重复]

这个问题在这里已有答案:

我试图在foreach循环中使用if语句来检查数组的值是否未“完成”或“正在执行”

$array = [
            $request1 = [
                            'title' => "foo",
                            'status' => 'finished'
                        ],
            $request2 = [
                            'title' => "bar",
                            'status' => 'executing'
                        ],  
            $request2 = [
                            'title' => "foo bar",
                            'status' => 'foo'
                        ]
        ];


foreach ($array as $request) {
    if ($request['status'] != 'finished' || $request['status'] != 'executing') {
        echo $request['title'];
    } 
}

我希望这只会返回“foo bar”,但它会返回“foobarfoo bar”我在这里做错了什么?

https://3v4l.org/VTVO5

回答(1)

2 years ago

条件应使用AND运算符,否则条件始终为true .

if ($request['status'] != 'finished' && $request['status'] != 'executing')

变量总是与两个值中的至少一个不同 .