在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!我正在编辑我的答案以删除显式强制转换。