1

提交表单后,我想检查数组是否为用户的空警报错误。但是提交表单时出现错误:

PHP

    $errors = array_filter($_POST['session']);
    if (!empty($errors)) {
        foreach ($_POST['session'] as $value) {
            $session.=$value.',';
        }
        $session=substr($session, 0 , -1);
    }

Warning: array_filter() expects parameter 1 to be array, null given in C:\inetpub\wwwroot\manage\test_bank\index.php on line 729
4

7 回答 7

3

在进行任何数组操作之前,您需要检查它是否为数组。

if(is_array($_POST['session'])){
  $errors = array_filter($_POST['session']);
} 
于 2013-03-07T05:27:22.950 回答
1

出现警告是因为 array_filters() 需要将数组传递给它。在将 $_POST['session'] 传递给这个函数之前,如果它是一个数组:

if(is_array($_POST['session'])) {
    $errors = array_filter($_POST['session']);
    // continue on
}
于 2013-03-07T05:26:30.560 回答
0

用于is_array检查天气是否为数组。

echo is_array($_POST['session']);
于 2013-03-07T05:27:52.667 回答
0

这是因为 $_POST 不是一个数组,我猜你正在寻找这个:

$errors = array_filter($_POST);

于 2013-03-07T05:28:20.817 回答
0

以下将最简单地检查空错误与否

!empty($_POST['session'])

如果您没有在没有错误的情况下在 $_POST['session'] 中填充空条目,则可以工作。为什么需要array_filter?

于 2013-03-07T05:30:59.707 回答
0

将其更改为array_filter($_POST)因为 $_POST 是一个 assoc 数组,或者在 array_filter() 之前$_POST['session']使用此行检查是否是一个数组。is_array($_POST['session'])在使用数组函数之前,您应该首先检查您正在使用的变量是否是一个数组。

于 2013-03-07T05:32:00.583 回答
0

$_POST 是一个数组,但这里 $_POST['session'] 不是。

你可以试试这个:

if(isset($_POST['session']))
{
    //do your stuff
}
于 2013-03-07T05:34:17.930 回答