如何在php中检查索引是否存在且不为null

如何在php中检查索引是否存在且不为null,php,null,isset,Php,Null,Isset,我总是使用以下代码检查索引是否存在且不为空: if(!(isset($_POST['service']) and $_POST['service'])) die('The service parameter is not available.'); 这里我检查两个条件。是否可以使用单个内置功能来完成?例如:- if(!isSetAndNotNull($_POST['service'])) die('The service parameter is not available.');

我总是使用以下代码检查索引是否存在且不为空:

if(!(isset($_POST['service']) and $_POST['service']))
   die('The service parameter is not available.');
这里我检查两个条件。是否可以使用单个内置功能来完成?例如:-

if(!isSetAndNotNull($_POST['service']))
   die('The service parameter is not available.');
您应该使用empty()进行此操作


返回false表示空(false)或空(null)

而不是
我将使用

if(!$_POST['service'])
   die('The service parameter is not available.');
如果将其与功能一起使用,则可避免故障

解释如下:
$\u POST
值不能为
null
,并且
isset
已在检查
null
。您正在检查字符串是否为
false
。如果您刚刚检查了php isset手册页()的“请参阅”部分,您将看到对
empty()
函数的引用……太棒了!我知道那是空的!但我认为它只对检查空值有用。你可以阅读我发布的链接问题中的问题。“不能在写上下文中使用方法返回值”上面的代码给出了“PHP通知:未定义的索引:中的服务…”Steve,只有在函数上使用
empty
时才存在,该函数不是为它设计的,也不需要它。在本例中,他将其用于变量,这是正确的。您链接到的答案解释了为什么
empty
+函数是错误的,并不是说您应该总是避免
empty
。是的,@deceze确实如此。这就是为什么我在某些情况下说。但是你是对的。我可以看到你的empty()问题,但是在他的post变量情况下,它工作得很好。您最好将您的if条件编辑为
if(!$\u POST['service'])