php - 変数の定義に関する質問
过去多啦不再A梦
过去多啦不再A梦 2017-06-07 09:23:08
0
5
712

私は初心者です。自宅で 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 変数が宣言されていないというメッセージが表示されました。誰か説明してください。それは私に?ありがとう###

过去多啦不再A梦
过去多啦不再A梦

全員に返信(5)
女神的闺蜜爱上我
  1. PHP のエラー レベル設定が異なるため、自宅ではエラーが報告されないが、会社ではエラーが報告されると思われます。コードの先頭に次のコードを追加してみてください。

    error_reporting(E_ALL ^ E_NOTICE);// 除了E_NOTICE之外,报告所有的错误 これは動的に設定され、php.ini で設定することもできます。具体的な方法は Baidu で見つけることができます。

  2. 関数内の変数は外部に対して閉じられており、外部に設定されている場合は内部で使用できません。これは上の階で詳しく説明されています。

いいねを押す +0
迷茫

PHP グローバル変数についてはこちらで詳しく説明されています

グローバル変数を関数内で使用するときにグローバル変数を外部で定義するには、文法要件である global キーワードを使用するか、$GLOBAL 配列

を使用する必要があります
いいねを押す +0
女神的闺蜜爱上我

その場合のみ、グローバル変数 global $x として宣言する必要があります。

いいねを押す +0
巴扎黑

「スコープ」というキーワードで検索すると、各言語の変数スコープが異なり、比較することで理解できます。

いいねを押す +0
曾经蜡笔没有小新

テストした PHP バージョンと作業環境の PHP バージョンを確認してください。新しいバージョンについてはよくわかりませんが、5.3 と 5.6 のグローバル変数のスコープには関数の内部が含まれていないため、関数のスコープ内にそのような変数がないため、関数が $x を認識できないのは正常です。機能

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート