ホームページ  >  記事  >  バックエンド開発  >  php グローバル変数が関数内で使用できない場合はどうすればよいですか?

php グローバル変数が関数内で使用できない場合はどうすればよいですか?

青灯夜游
青灯夜游オリジナル
2021-10-08 18:36:423524ブラウズ

解決策: 1. 関数にグローバル変数をインポートするには、global キーワードを使用します。構文は「global global variable 1, global variable 2, ...」です。 2. スーパー グローバル変数「$GLOBALS」を使用します。 " 指定されたグローバル変数にアクセスする場合の構文は "$GLOBALS['グローバル変数名']" です。

php グローバル変数が関数内で使用できない場合はどうすればよいですか?

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

通常、内部ではグローバル変数を使用できません。関数 しかし、関数内でグローバル変数を使用しなければならない場合があります。どうすればよいでしょうか?

PHP は、グローバル キーワードと $GLOBALS スーパー グローバル変数という 2 つのソリューションを提供します。

方法 1. グローバル キーワード

<?php
$a = 1;
$b = 2;
$c = 3;
function demo(){
	global $a,$b,$c;
    echo &#39;$a = &#39;.$a;
    echo &#39;<br>$b = &#39;.$b;
    echo &#39;<br>$c = &#39;.$c;
}
demo();
?>

を使用して、出力結果を確認します:

$a = 1
$b = 2
$c = 3

分析:

global キーワードの機能は、グローバル変数をインポートし、グローバル変数 1, 変数 2...グローバル変数 1, 変数 2, ...## の形式で関数にインポートすることです。 # 関数のローカル スコープ内では、関数の外で定義されたグローバル変数を関数内で使用できます。

global キーワードを使用するときは、次の点に注意する必要があります:

  • global キーワードは関数の内部でのみ使用でき、関数の外部では使用できません。

  • ##global キーワードは関数外のグローバル変数を参照する場合にのみ使用でき、参照時に直接代入することはできません。代入文と宣言文は別々に記述する必要があります。
  • #関数内 global キーワードで変更された変数が内部で破棄されても、関数外の変数には影響しません。
  • 方法 2: $GLOBALS スーパー グローバル変数を使用する

<?php
$a = 1;
$b = 2;
$c = 3;
function demo(){
    echo &#39;$a = &#39;.$GLOBALS[&#39;a&#39;];
    echo &#39;<br>$b = &#39;.$GLOBALS[&#39;b&#39;];
    echo &#39;<br>$c = &#39;.$GLOBALS[&#39;c&#39;];
}
demo();
?>
出力結果は次のとおりです:
$a = 1
$b = 2
$c = 3

分析:

$GLOBALS

は事前定義された変数 (スーパー グローバル変数とも呼ばれます) であり、すべての変数を含むグローバル結合配列です。変数の名前は配列のキーです。次を使用できます。

$GLOBALS[ '変数名'] 指定されたグローバル変数にアクセスします。出現したグローバル変数であれば、$GLOBALS 配列を通じて取得できます。 global と $GLOBALS の違い

global は関数内でのみ使用でき、関数外では使用できません。一方、$GLOBALS は関数内でのみ使用できます。プログラム内で使用 どこでも(関数内外)使用可能です。
  • global キーワードで変更された変数が関数内で破棄されても、関数の外部の変数は影響を受けません ($GLOBALS は影響を受けます)。
  • 理由:

    global キーワードを使用して $var 変数を変更する場合、これは関数の外側にある同じ名前の変数への参照であり、内側と外側は 2 つの変数です。相互に影響しません;

    そして、$GLOBALS['var'] は、変数である関数自体の外部変数を参照します。

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

以上がphp グローバル変数が関数内で使用できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。