ホームページ  >  記事  >  バックエンド開発  >  注意: 未定義のオフセットの解決策

注意: 未定義のオフセットの解決策

WBOY
WBOYオリジナル
2016-06-13 12:19:283841ブラウズ

注意: 未定義のオフセット ソリューション

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

注意: 未定義のオフセット: 1 in xxx.php48
注意: 未定義のオフセット: 2 in xxx.php48

通知: 未定義のオフセット: xxx.php48

通知: 未定義のオフセット: xxx.php 🎜>.php48

この問題は配列でよく発生しますが、ヒント: 注意: 未定義のオフセットが常に画面に表示されます。 : ..... インターネット上では表示を抑止する、つまりphp.iniファイルのerror_repotingパラメータを「EALL & Notice」に変更することで画面が正常に表示されるようにするのが一般的な方法です

問題は解決しましたが、offset の次の数字が何を意味するのかまだわかりません: ( Notice: Unknown offset: 4…. など) また、文内の文法は明らかに正しいのですが、なぜそうなるのでしょうか。警告が表示されましたか? 何度か冷静に考え、あらゆる可能性を試した結果、最終的に答えが見つかりました。 オフセット: 次の数値は配列の値の範囲を超えています。たとえば、配列 $A の場合です。 [] が定義されており、10 桁で、$A[10] が出現するとエラーが発生します (注意: 未定義のオフセット: 10 ....)。配列の添字は 0 から始まるため、この配列の添字はしたがって、このような問題が発生した場合は、表示を抑制する方法を急いで使用しないでください(先頭に「error_reporting(オフセット:次の数字を記入);」を追加する方が簡単です)。現在のファイルに注意してください。よく考えてください。その内容を読む前に配列を設定解除することもできます。

確認ですが、UNSET を使用すると配列全体が破壊される可能性があります。これに関する参照がどこにも見つからなかったので、これを書くことにしました。


unset の使用と $myarray=array() の使用の違い。 ; 設定を解除すると、配列は上書きされるだけでまだ存在します。
$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 行目
通知: 未定義のオフセット: C:webpagesdainsidermyarray.php の 10 行目
$myarray=array(); の出力は次のとおりです:
?>
HelloWorld
通知: 未定義のオフセット: 0 C:webpagesdainsidermyarray.php の 10 行目
注意: 未定義のオフセット: 1 C:webpagesdainsidermyarray.php の 10 行目

Array

?>

これはルートです問題の原因。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。