ホームページ >バックエンド開発 >PHPチュートリアル >注意: 未定義オフセットの解決策、undefined_PHP チュートリアルに注意してください
プログラムのデバッグ時にエラー メッセージが常に表示されます:
お知らせ: 未定義のオフセット: xxx.php (48 行目) に 1 があります
お知らせ: 未定義のオフセット: xxx.php 行 48
お知らせ: 未定義のオフセット: xxx.php 行 48
に 3お知らせ: 未定義のオフセット: 48 行目の xxx.php に 4 この問題は配列でよく発生します。プログラムは正しく実行できますが、次のようなプロンプトが常に画面に表示されます。 注意: 未定義のオフセット: ..... この表示を抑制する方法は、インターネットで一般的に使用されています。 php.iniファイルのerror_repotingのパラメータを「EALL & Notice」に変更すると正常に画面が表示されるようになります
問題は解決しましたが、オフセットの次の数字が何を意味するのかまだわかりません: (通知: 未定義のオフセット: 4…など) また、文内の文法は明らかに正しいのに、なぜ警告が表示されるのでしょうか。落ち着いてください。何度も考え、あらゆる可能性を試した結果、最終的に答えが見つかりました。次の数値は配列の値の範囲を超えています。たとえば、$ です。 A[] は 10 桁として定義されており、$A[10] が出現するとエラーが発生します (注意: 未定義のオフセット: 10 ....)。配列の添字は 0 から始まるため、この添字はしたがって、このような問題が発生した場合は、慌てて表示を抑制する方法を使用しないでください(「error_reporting (fill in offset: the next number);」という文を追加する方が簡単です。現在のファイルの先頭にある配列の添字に注意してください。よく考えてください。配列の設定を解除してから、その内容を読み取ることもできます。マニュアルには:確認しますが、UNSET を使用すると配列全体が破壊される可能性があります。これに関する参照がどこにも見つからなかったので、これを書くことにしました。
unset を使用することと $myarray=array(); を使用して unset することの違いは、明らかに配列が上書きされるだけで、まだ存在することです。
$myarray=array("Hello","World");
echo $myarray[0].$myarray[1];
unset($myarray);
//$myarray=array();
echo $myarray[0].$myarray[1];
echo $myarray;
?>
未設定の出力は次のとおりです:
HelloWorld
通知: 未定義のオフセット: C:webpagesdainsidermyarray.php の 10 行目で 0
通知: 未定義のオフセット: C:webpagesdainsidermyarray.php の 10 行目で 1
出力$myarray=array(); は:
?>
HelloWorld
注意: 未定義のオフセット: C:webpagesdainsidermyarray.php の 10 行目です
注意: 未定義のオフセット: C:webpagesdainsidermyarray.php に 1 10行目
配列
?>