ホームページ >バックエンド開発 >PHPチュートリアル >注意: 未定義オフセットの解決策、undefined_PHP チュートリアルに注意してください

注意: 未定義オフセットの解決策、undefined_PHP チュートリアルに注意してください

WBOY
WBOYオリジナル
2016-07-13 09:54:481405ブラウズ

注意: 未定義のオフセットの解決策、未定義に注意してください

プログラムのデバッグ時にエラー メッセージが常に表示されます:

お知らせ: 未定義のオフセット: xxx.php (48 行目) に 1 があります
お知らせ: 未定義のオフセット: xxx.php48

に 2 があります

お知らせ: 未定義のオフセット: xxx.php48

に 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行目
配列

?>

これが問題の根本原因です。

http://www.bkjia.com/PHPjc/995934.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/995934.html技術記事注意: 未定義のオフセット ソリューション、プログラムのデバッグ時に常に未定義のエラー メッセージが表示されることに注意してください: 注意: 未定義のオフセット: 1 in xxx .php on line 48 Notice: 未定義の o...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。