Php 花费大量时间进行测试';isset&x27;具有空值

Php 花费大量时间进行测试';isset&x27;具有空值,php,Php,我有一个数组,取自数据库记录: array ( 'id' => '66', 'userID' => '4786', 'heard' => NULL, ) 然而,下一步似乎需要很长时间来处理: if((isset($check['heard'])和($check['heard']!=null)){ …我不知道为什么?即使我只是测试它: if(设置($check['heard']){ 这需要很长的时间,最终会由于执行时间最长而超时 以前我在: if($check) …

我有一个数组,取自数据库记录:

array (
  'id' => '66',
  'userID' => '4786',
  'heard' => NULL,
)
然而,下一步似乎需要很长时间来处理:

if((isset($check['heard'])和($check['heard']!=null)){

…我不知道为什么?即使我只是测试它:

if(设置($check['heard']){

这需要很长的时间,最终会由于执行时间最长而超时

以前我在:

if($check)
…这很好,仍然有效。但我需要测试“听说”


到底发生了什么事?

用这一行替换那一行

if(isset($check['heard']) && $check['heard'] !== null) {
你的语法有点怪

或者,如果您只想检查
isset()
请执行此操作

if(isset($check['heard'])) {
(你错过了正确的佩伦)

如果您知道,
$check['heard']
永远不会为零或空字符串,您可以这样做

if(!empty($check['heard'])) {

您还可以查找数组键是否存在。如下所示,检查是否为null

$m=array (
    'id'     => '66',
    'userID' => '4786',
    'heard'  => NULL,
);

if (array_key_exists("heard",$m)){
    if ($m['heard']!="")
    {
        echo "Key exists";
    }
}

你确定这就是要花这么多时间的那一行吗?你还改变了什么吗?非常肯定。如果它去掉它,它会工作得很好。我不明白。谢谢!尽管我刚刚发现要比较
null
值,你必须使用
===
比较,而不是简单的
=
。我想这就是原因所在出问题了。