ホームページ >バックエンド開発 >PHPチュートリアル >未定義のインデックス (選択済み) の解決策について学びましょう

未定義のインデックス (選択済み) の解決策について学びましょう

慕斯
慕斯転載
2021-06-03 11:55:5721723ブラウズ

長い間 PHP を勉強してきたので、今日は PHP の通知: 未定義のインデックスの解決策について学びます。意味が分からないかもしれませんが、この記事を読むと必ず新しいアイデアが生まれると思います。 。 褒美!

未定義のインデックス (選択済み) の解決策について学びましょうphp 注意: 未定義のインデックスの問題、未定義のインデックス: コードにエラーがあることを意味します: 「変数はまだ定義されておらず、代入後に使用されています。」これは致命的ではありません。エラーが発生し、実行できません。 PHP コードは強制終了されますが、問題が発生する可能性があります...

データの読み取り時に表示されます:

Notice: 未定義のインデックス: 名前が含まれています。 .

注意: 未定義のインデックス: キーを入力してください…

ソース コードは次のとおりです:

name = isset ( name = isset(name=isset(_POST[‘name’]) ? filter_input(INPUT_POST, ‘name’, FILTER_SANITIZE_SPECIAL_CHARS) :htmlspecialchars($_GET[‘name’]);
key = isset ( key = isset(key=isset(_POST[‘key’]) ? filter_input(INPUT_POST,‘key’,FILTER_SANITIZE_SPECIAL_CHARS) :htmlspecialchars($_GET[‘key’]);

問題分析:

未定義のインデックス: コードを参照します。エラーがあります:「変数はまだ定義されていません。値を割り当てる前に使用されます。」これは致命的なエラーではなく、実行を強制的に停止することはありません。 php コードを変更しますが、問題が発生する可能性があるため、変更することをお勧めします~~~~

解決策:

Use error_reporting = E_ALL & ~ php.ini の E_NOTICE を使用して、通知の表示をオフにし、そのような警告をシールドします。ただし、コードを変更することをお勧めします。コードは常により標準化された方法で記述される方が良いです。そうすれば、将来的には問題が少なくなります。 。

問題の原因: POST が存在するかどうかだけを確認し、_POST が存在するかどうかは確認せず、POST が存在するかどうかは確認せず、_POST が存在するかどうかを確認しなかったことが原因です。 _得る。

完璧な解決策: 次のように変更するだけです:

n a m e = i s s e t ( name = isset(name=isset(_POST[‘name’]) ? filter_input(INPUT_POST,‘name’,FILTER_SANITIZE_SPECIAL_CHARS) : isset($_GET[‘name’]) ? filter_input(INPUT_POST,‘name’,FILTER_SANITIZE_SPECIAL_CHARS) : ‘’;
k e y = i s s e t ( key = isset(key=isset(_POST[‘key’]) ? filter_input(INPUT_POST,‘key’,FILTER_SANITIZE_SPECIAL_CHARS) : isset($_GET[‘key’]) ? filter_input(INPUT_POST,‘key’,FILTER_SANITIZE_SPECIAL_CHARS) : ‘’;

まず第一に、これはエラーではなく、警告です。したがって、サーバーを変更できない場合は、使用する前に各変数を定義する必要があります。

方法 1: サーバー構成を変更する

修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE


方法 2: 変数を初期化し、標準化された方法で記述します (変数の数が多いため、より面倒です)変数の)。しかし、まだ良い定義方法が見つかりません。アドバイスをいただければ幸いです。
方法 3:

每个文件头部加上:error_reporting(0); 如果不行,只有打开php.ini,找到display_errors,设置为display_errors = Off

今後、エラーは表示されなくなります。
方法 4:

做判断:isset($_GET["page"])      if-else判断

または、「@」を追加して、この行にエラーまたは警告がある場合に出力しないことを示します
例: @$page =$_GET["page" ]
方法 5:

file1.php文件把$xx变量付一个值,用post传递给file2.php,

file2.php に $xx の定義がなく、$yy=$xx を直接使用する場合、システムはエラーを報告します。 undifined Variable $xx", if file2.php ファイルが $xx=""; で始まる場合、file1.php の $xx 値を渡すことはできません。

file2.php里可以这样
if(!isset($xx)) $xx="";

推奨学習: 「PHP ビデオ チュートリアル

以上が未定義のインデックス (選択済み) の解決策について学びましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。