为什么 isset() 会返回空值


Why would isset() return null?

我收到错误,发现isset()没有按预期工作。

我发现它返回的是 null 而不是 false;这怎么会发生?

我的测试代码:

echo 'COUNT : '.count($_GET).', ISSET : '.(isset($_GET['test'])==null);

返回 : 计数 : 0, ISSET : 1

根据请求的评论。

isset()不会回来NULL!这是因为比较将NULL视为FALSE。您可以在手册中看到这一点:http://php.net/manual/en/language.types.boolean.php#language.types.boolean.casting

另外,如果您查看手册isset():http://php.net/manual/en/function.isset.php

您将看到它只返回TRUEFALSE

如果 var 存在且值不是 NULL,则返回 TRUE否则返回 FALSE。

现在要解决此问题,您只需将==更改为此===,以便比较也比较类型。