通常、未定義のインデックスの問題は、配列にこの値がないことが原因で発生します。配列は連想配列とインデックス配列に分けられます。インデックス配列は数値の添字です。連想配列はキーと値の添字です。
$POST['id'] は、$POST 配列に添字キー値 ID を持つ値が含まれていないため、未定義のインデックスを報告します。 (推奨される学習: PHP ビデオ チュートリアル )
解決策:
配列に添字キー値 ID を持つ値が含まれているかどうかを確認します。そうでない場合は、エラー メッセージが返されます。どのように判断するか? 最も簡単な方法は、isset($POST['id']) などの関数 isset を使用して判断することです。存在する場合は true を返し、存在しない場合は true を返します。 be false;
三項判定方式では $POST['id'] = isset($POST['id'])?$POST['id']:" のようにデフォルト値が与えられません。 1";
この通知は、ユーザー (または PHP) が配列の未定義のインデックスにアクセスしようとすると発生します。
問題への対処方法:
インデックスにアクセスする前に、インデックスが存在するかどうかを確認してください。これには isset() または array_key_exists() を使用できます:
//isset()$value = isset($array['my_index']) ? $array['my_index'] : ''; //array_key_exists()$value = array_key_exists('my_index', $array) ? $array['my_index'] : '';
存在しない配列インデックスにアクセスしようとすると、言語構造 list() がこれを生成する可能性があります:
list($a, $b) = array(0 => 'a');//orlist($one, $two) = explode(',', 'test string');
2 つの変数2 つの配列要素にアクセスする場合、インデックス 0 には配列要素が 1 つしかないため、次が生成されます:
注: 未定義のオフセット: 1
$_POST/ $ _GET/ $ _SESSION 変数
$_POST を使用する場合、$_GET または $_SESSION について上記の考慮事項が頻繁に発生します。
$_POST、$_GET の場合、使用する前にインデックスが存在するかどうかを確認するだけです。 $_SESSION があるため、session_start() で開始し、インデックスも存在することを確認する必要があります。
以上がPHPで未定義のインデックスを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。