0

我正在尝试比较以下内容:如果值不是数组或值不等于false,则返回。

if (is_array($value) != true || $value != false) return;

这以及我尝试的任何其他变体似乎都不起作用。但是,当我在它们自己的 if 语句中单独比较它们时,它们会返回正确的结果。

任何帮助将不胜感激!

4

2 回答 2

1

您最初说“如果它不是数组或不是假的”。你倒着想。你想要“如果值是一个数组或假继续,否则返回”。

所以:

// This says: "if it's not (an array or false)"
if(!(is_array($value) || $value === FALSE)) return;

使用德摩根定律,我们可以将其转换为

// This says: "if it's not an array and not false"
if(!is_array($value) && $value !== FALSE) return;
于 2012-07-19T20:31:51.150 回答
0

我会这样写:

if (!is_array($value) || $value !== false)

php 中的很多东西都可以是 == false,但只有 boolean false 可以是 === false。查看布尔类型手册页比较运算符手册页

于 2012-07-19T20:07:13.000 回答