在php中检查NULL

在php中检查NULL,php,null,Php,Null,我正在尝试检查字符串是否为空: if (strlen((string)$comment) > 0 And !($comment === NULL)) { .... } 但是它似乎没有拾取空值。使用而不是检查字符串长度以及是否为空值 if (!empty($comment)) 为了便于学习,您可以在具体示例中使用: if (strlen((string)$comment) > 0 && !is_null($comment)) 但我的第一个例子是更好的方法。

我正在尝试检查字符串是否为空:

if (strlen((string)$comment) > 0 And !($comment === NULL))
{   ....   }
但是它似乎没有拾取空值。

使用而不是检查字符串长度以及是否为空值

if (!empty($comment))
为了便于学习,您可以在具体示例中使用:

if (strlen((string)$comment) > 0 && !is_null($comment))

但我的第一个例子是更好的方法。

将此作为条件:

if (!is_null($comment) && strlen($comment) > 0)
{   ....   }
但正如John Conde所建议的,您可以通过使用将其缩短为一次检查,但要知道这将检查
$comment
中的值是否为
'
NULL
'0'
false
,以及
0

if (!empty($comment))
{   ....   }
只需使用:
if(!is_null($comment))

{….}

变量包含什么?使用
var\u dump()
来探测失败的案例。var\u dump说它为空,但我无法得到任何同意。如果使用if(is_null($comment)){stuff},则不会执行该操作。
empty
也会触发字符串
“0”
。@mario True。您的评论的答案将很有说服力。
>0
条件甚至可能是多余的。而且我也会避免直接选角。如果OP传递了一个数组,他希望得到一个警告,而不是一个错误的结果(strlen((string)array())==5)。如果
$comment
表示一个整数,他希望转换成字符串来测试长度,该怎么办,虽然
>0
可能是多余的,但在他稍后查看代码时,更容易理解。
strlen
执行隐式字符串转换,除了NULL、数组和对象IIRC。但是,如果为了可读性,可以保留
>0
。我学到了一些新东西,谢谢Mario!我正在编辑我的答案以删除显式强制转换。