php

グローバル変数の適用範囲を変える

globalを使う

グローバル変数の適用範囲を変更し、関数内部でもりようできるように
することができます。globalというキーワードを使います。

サンプルコードの実行結果はこちら

関数の中で、グローバル変数にglobalと文言を加えています。

global $a;

これをグローバル変数の宣言といい、globalを使って変数を宣言すると、
それ以降、$aという名前でグローバル変数を使うことができます。
関数内でグローバル変数を使うことができるようになります。

ローカル変数の名前が重複した場合

同じ関数内のローカル変数には同じ名前をつけることはできません。
ただ、異なる関数内のローカル変数であれば、同じ名前をつけても
大丈夫です。

function test1(){
$a = 0;
$a++;
}

function test2(){
$a = 0;
$a++;
}

変数$aを2か所で宣言してますが、
異なる関数内なので大丈夫です。
上記の2つの変数は同じ名前ですが、
別々の変数として扱われます。

グローバル変数と名前が重複すると

グローバル変数とローカル変数は、同じ変数名を使っても大丈夫です。

サンプルコードの実行結果はこちら

グローバル変数として「変数$a」を定義して、func内関数内で、さらに
ローカル変数として「変数$a」を定義、
グローバル変数とローカル変数を同じ名前にすることが可能ですが、
ローカル変数で宣言したfunc()内ので「$a++;」と書けば、
ローカル変数の$aを指します。インクリメントされるのは
ローカル変数の$aです。一方で、関数外でインクリメントされるのは
グローバル変数の$aとなります。

-php
-, , ,