PHPでは変数のスコープに、グローバルは変数と、関数内のみ有効な変数があります。
この2つの間で同じ変数名を定義することは可能ですが、それらは別々のものとみなされます。
$a = 10; function func() { $a = 20; return $a; } func(); echo $a; |
上記コードを実行した場合、echo $aで見ているのはグローバル変数です。
一方で、funcの中で利用している変数はローカル変数なので、グローバル変数の値は上書きされません。
このため、このプログラムの実行結果は10です。
上記の例で、関数func()の中からグローバル変数を参照したい場合は、下記のようにglobalキーワードを利用します。
$a = 10; function func() { global $a; $a = 20; return $a; } func(); echo $a; |
この場合の実行結果は20になります。これはfunc()の中でグローバル変数の$aを10から20に変更しているためです。
関連記事
コメントを残す