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

以下は、空のエラーをチェックするかどうかを最も簡単にチェックします

!empty($_POST['session'])

エラーが発生しない場合に、$ _POST['session']に空のエントリを詰め込まない限り機能します。なぜarray_filterが必要なのですか?

于 2013-03-07T05:30:59.707 に答える
0

array_filter($_POST)$ _POSTが連想配列であるためにに変更するか、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 に答える
0

これは、 $_POST が配列ではないためです。これを探していると思います:

$errors = array_filter($_POST);

于 2013-03-07T05:28:20.817 に答える