6

検討:

<?php
  //  $smith = "";
  $submit ="button_a";

  if($submit == "button_a") {
      $smith = "button_a";
  }
    elseif($submit == "button_b"){
      $smith = "button_b";
  }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>

<body>
    <p>
        <?php echo($smith);  ?>
    </p>
</body>

</html>

PhpStormは、各ファイルにフラグを提供します:赤-エラー、黄-警告、緑-OK。

ヘッダーの上のPHPコードは、 $smithに値を割り当てます。本文では、$smithに未定義の可能性があるという警告が表示されます。PHPコードの先頭ですべての変数を宣言すると($ smith = "";)、それは幸せです(警告なし)。

これらの警告を防ぐために私がすべきことはありますか?

私は、コメントをチェックしないようにと言ってそれぞれにコメントを付けるという考えは好きではなく、すべてをオフにしたくありません。

これは、 4つまたは5つの変数を定義するdb_login.phpファイルを含めるとよく発生します。WAMPMAMP、および実際のホース用に異なるdb_login.phpファイルがあります。

何かご意見は?

4

2 に答える 2

17

require on include ステートメントが変数アクセスの前に同じ実行フローにある場合、PhpStorm に未定義変数レポートを無視するように指示できます。

「未定義の変数」で見つけることができます- 'include' および 'require' ステートメントを無視します。デフォルトで有効になっているため、無効にする必要があります。

ここに画像の説明を入力してください

*注: 設定は、メニューの[ファイル] → [設定] ( Ctrl+ Alt+ S) → [プロジェクトの設定] → [インスペクション] → [ PHP ] → [未定義] → [未定義の変数] にあります。

于 2012-08-01T01:28:39.493 に答える
7

ええ、この警告を取り除くためにあなたができることが2つあります。あなたが言ったこと:

$smith = "";
if($submit == "button_a") {
    $smith = "button_a";
}
elseif($submit == "button_b"){
    $smith = "button_b";
}

または、印刷時に設定されているかどうかを確認します。

<?php
    if( isset( $smith)) {
        echo($smith);
    }
?>

ただし、これは単なる警告であり、$smith定義されない条件があることを通知します(定義されていない場合とされ$submitてい"button_a"ない場合"button_b")。その条件が発生した場合、$smith設定されていないときに印刷することになります。これは、スクリプトのバグである可能性があります。

于 2012-08-01T01:23:37.613 に答える