未定义的变量当值为空时

用户名

我有2个代码块。

//第一块

<div id="a1">
<?php

if (is_array($new_array) || is_object($new_array))
{
  foreach ($new_array as $name => $val)
   {
     echo $name . " : " . $val[0] . " , " . $val[1]. " , " . $val[2];
   }
}
unset($new_array);
?>
</div>

第二块

<div id="a2">
    <?php

    if (is_array($new_array) || is_object($new_array))
    {
      foreach ($new_array as $name => $val)
       {
         echo $name . " : " . $val[0] . " , " . $val[1]. " , " . $val[2];
       }
    }
    unset($new_array);
    ?>
    </div>

第一块或第二块将在一天之内给出空结果。意思是如果今天,第一个块将给出空结果,明天第二个块将给出空结果....或者...。

问题

今天,第二个块的Value为空,它发出了通知:未定义变量:new_array error,所以我在第二个代码块之前对此进行了初始化:

$new_array=''; 

它工作正常。...但是明天第二块代码将给出以下结果:

警告:字符串偏移量非法,致命错误:未捕获的错误:无法将字符串偏移量用作数组

所以我需要删除此代码:$new_array='';在第二块之前&我需要在第一块之前.....

摩根自由农场

怎样使用if (isset($new_array)) {...}或像数组那样初始化它,$new_array = [];

您可以将isset添加到其他检查中,如下所示:

if (isset($new_array) && (is_array($new_array) || is_object($new_array))) { .... }

有关isset()的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章