国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

報(bào)錯(cuò):「注意: 未定義の変數(shù)」、「注意: 未定義のインデックス」、「警告: 未定義の配列キー」、還有「注意: 未定義のオフセット」 (PHP を使用)
P粉046878197
P粉046878197 2023-07-20 11:17:02
0
2
1051

PHP スクリプトを?qū)g行していますが、次のようなエラーが発生し続けます:

注意: 未定義の変數(shù): C:wampwwwmypathindex.php の 10 行目にある my_variable_name

注意: 未定義のインデックス: my_index C:wampwwwmypathindex.php 行 11

警告: C:wampwwwmypathindex.php の 11 行目に未定義の配列キー「my_index」があります

10行目と11行目は次のようになります:

リーリー

これらのエラー メッセージは何を意味しますか?

なぜ突然現(xiàn)れるのでしょうか?私はこのスクリプトを數(shù)年間使用していますが、これまでに問題が発生したことはありません。

これらのエラーを修正するにはどうすればよいですか?


P粉046878197
P粉046878197

全員に返信(2)
P粉116631591

###これを試して### リーリー

または、迅速で簡単な解決策もあります:

リーリー
P粉722521204

このエラー メッセージは、PHP プログラマが存在しない変數(shù) (または配列要素) にアクセスするときにタイプミスや間違いを検出できるようにすることを目的としています。したがって、優(yōu)れたプログラマは次のことを行う必要があります:

  1. 各変數(shù)または配列キーが使用する前に定義されていることを確認(rèn)してください。関數(shù)內(nèi)で変數(shù)を使用する必要がある場合は、それをパラメーターとして関數(shù)に渡す必要があります。
  2. このエラーを確認(rèn)し、他のエラーと同様に修正してください。これは、タイプミス、またはプロシージャが本來あるべきデータを返さないことを示している可能性があります。
  3. プログラマーの制御が及ばないまれなケースにのみ、このエラーを回避するコードを追加する必要があります。しかし、それが盲目的な習(xí)慣になってはいけません。

注/警告: 未定義の変數(shù)

PHP では変數(shù)の宣言は必要ありませんが、スクリプトの後半で使用される変數(shù)に値を割り當(dāng)て忘れる可能性があるセキュリティ ホールやバグを避けるために、宣言することをお?jiǎng)幛幛筏蓼?。変?shù)が宣言されていない場合、PHP は E_WARNING レベルのエラーを発行します。

この警告は、プログラマーが変數(shù)名のスペルミスや同様のエラー (たとえば、條件が false と評(píng)価された場合に変數(shù)に値を割り當(dāng)てる場合など) を検出するのに役立ちます。さらに、初期化されていない変數(shù)に関しては他にも問題が発生する可能性があります。 PHP マニュアルに記載されているように、

これは、変數(shù)がインクルードされたファイルから値を取得する可能性があり、初期化されていない変數(shù)にアクセスするときに予期される null 値の代わりにこの値が使用されることを意味します。これにより、予期しない結(jié)果が生じる可能性があります。これを回避するには、使用する前に PHP ファイル內(nèi)のすべての変數(shù)を初期化することをお?jiǎng)幛幛筏蓼埂?

この問題に対処するにはいくつかの方法があります:

  1. 推奨されるアプローチは、使用する前に各変數(shù)を宣言することです。この方法では、実際に間違いを犯して存在しない変數(shù)を使用しようとした場合にのみ、このエラーが表示されます。そのため、このエラー メッセージが表示されます。

    リーリー
  • 特殊なケースは、変數(shù)が定義されているが関數(shù)內(nèi)で參照できない場合です。 PHP では、関數(shù)には獨(dú)自の変數(shù)スコープがあります。関數(shù)で外部変數(shù)を使用する必要がある場合は、その値を関數(shù)のパラメーターとして渡す必要があります:

    リーリー
  1. エラーを抑制するには、null 合體演算子を使用します。ただし、この方法では、間違った変數(shù)名を使用したことを PHP が通知できないことに注意してください。

    リーリー

    古い PHP バージョン ( リーリー

    これは本質(zhì)的にエラー抑制ですが、特定のエラーに対してのみ機(jī)能することに注意してください。したがって、PHP が変數(shù)を初期化されていないものとしてマークすることによって、ユーザーを支援できなくなる可能性があります。

  2. @ 演算子を使用してエラーを抑制します。歴史的な理由からここに保管されていますが、真剣に考えれば、これは決して起こるべきではありませんでした。

注: 最初の點(diǎn)のみを?qū)g裝することを強(qiáng)くお?jiǎng)幛幛筏蓼埂?

注: 未定義のインデックス/未定義のオフセット/警告: 未定義の配列キー

このヒント/警告は、ユーザー (または PHP) が配列の未定義のインデックスにアクセスしようとすると発生します。

內(nèi)部配列

內(nèi)部配列、つまりコード內(nèi)で定義された配列を扱うときも、まったく同じ態(tài)度を採用する必要があります。使用する前にすべてのキーを初期化します。こうすることで、エラーは本來の役割を果たすことができ、コード內(nèi)のエラーをプログラマに通知することができます。したがって、処理方法は同じです:

提案: 配列要素を宣言します:

リーリー

特殊なケースは、関數(shù)が配列またはその他の値 (null や false など) を返す場合です。配列要素にアクセスする前に、次のようなテストを?qū)g行する必要があります。

リーリー

外部配列

外部配列 ($_POST/$_GET/$_SESSION または JSON 入力など) の場合は、プログラマがこれらの配列の內(nèi)容を制御できないため、狀況は異なります。したがって、特定のキーが存在するかどうかを確認(rèn)したり、欠落しているキーにデフォルト値を割り當(dāng)てたりすることは合理的です。

  • PHP スクリプトに HTML フォームが含まれている場合、當(dāng)然のことながら、最初の読み込み時(shí)にはフォームのコンテンツは存在しません。したがって、そのようなスクリプトはフォームが送信されたかどうかをチェックする必要があります。

    リーリー
  • チェックボックスなどの一部の HTML フォーム要素は、選択されていない場合、サーバーに送信されません。この場合、null 合體演算子を使用してデフォルト値を割り當(dāng)てるのが合理的です。

    リーリー
  • オプションのクエリ文字列要素または Cookie も同じ方法で処理する必要があります。

    リーリー

ただし、割り當(dāng)てはスクリプトの先頭で行う必要があります。すべての入力を検証し、それをローカル変數(shù)に割り當(dāng)て、コード全體で使用します。こうすることで、アクセスするすべての変數(shù)が意図的に存在することになります。

最新のダウンロード
詳細(xì)>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート