PHP if status with 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

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

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

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

最新更新