-1

我有一个 $_SESSION['errors'] 为其 print_r 返回 Array ( [0] => field )。但是当我尝试这个时:

   $errors = $_SESSION['error'];
    if(array_key_exists (0, $error)) {echo "yes";} else{echo "no";}

它输出错误:警告:array_key_exists() 期望参数 2 是数组,在第 7 行的 C:\wamp\www\sandbox\formvalidation\formvalidation.php 中给出 null

怎么了?

4

3 回答 3

0

尝试使用 is_arry 之类的

if(is_array($errors))
{     
     if(array_key_exists (0, $errors))
     {
         echo "yes";
     }
     else
     { 
         echo "no";
     }
}
于 2013-05-09T09:48:58.763 回答
0

您收到该错误是因为'errors'$_SESSION 数组中的键不存在。$_SESSION 是一个数组,但'errors'键尚未设置或没有数组的值。

使用它不会出现该错误:

$errors = is_array($_SESSION['errors']) ? $_SESSION['errors'] : array();

这使用三元运算符基本上说:

$errors = IS ERRORS AN ARRAY ? YES : NO;

If yes, assign $_SESSION['errors'] to $errors;
If no, assign array() to $errors;
于 2013-05-09T09:47:52.293 回答
0

如果要对其使用 array_key_exists() ,请确保 $errors 是一个多维数组

于 2013-05-09T09:48:54.797 回答