私は初心者です。自宅で phpstorm を使用して次のコードを作成すると、エラーなしで実行されます。
コードは次のとおりです:
<?php
$x=5; // グローバル変数
function myTest()
{
}
myTest();
echo "<p>テスト関数の外部変数:<p>";
echo "変数 x は: $x";
echo "
";
echo "変数 y は $y";
?>
しかし、仕事に行くと、ブラウザは次のようなプロンプトを報告します:
テスト関数の変数:
注意: 未定義の変数: F:WEBDEVELOPIndex.php の 8 行目での x
変数 x は:
変数 y は: 10
テスト関数の外部変数:
変数 x は: 5
注意: 未定義の変数: F:WEBDEVELOPIndex.php の 18 行目
変数y は:
質問:
PHP チュートリアルを読んだとき、$ を使用して変数を定義できると書かれていましたが、x 変数が宣言されていないというメッセージが表示されました。誰か説明してください。それは私に?ありがとう###
PHP のエラー レベル設定が異なるため、自宅ではエラーが報告されないが、会社ではエラーが報告されると思われます。コードの先頭に次のコードを追加してみてください。
error_reporting(E_ALL ^ E_NOTICE);// 除了E_NOTICE之外,报告所有的错误
これは動的に設定され、php.ini で設定することもできます。具体的な方法は Baidu で見つけることができます。PHP グローバル変数についてはこちらで詳しく説明されています
グローバル変数を関数内で使用するときにグローバル変数を外部で定義するには、文法要件である global キーワードを使用するか、$GLOBAL 配列
を使用する必要がありますその場合のみ、グローバル変数 global $x として宣言する必要があります。
「スコープ」というキーワードで検索すると、各言語の変数スコープが異なり、比較することで理解できます。
テストした PHP バージョンと作業環境の PHP バージョンを確認してください。新しいバージョンについてはよくわかりませんが、5.3 と 5.6 のグローバル変数のスコープには関数の内部が含まれていないため、関数のスコープ内にそのような変数がないため、関数が $x を認識できないのは正常です。機能