PHP では関数の引数は「値渡し」なので、関数内の引数の変数はコピーされたもので、その内容を変更しても外の変数の内容が変更される事はありません。また、仮に外と同じ名前の変数を関数内部で参照しても、それはローカルのみ有効な別の変数となります。 そこで、PHP では外部の変数を直接参照する方法として参照渡しと global キーワードによる外部の変数の参照方法という手段があります。 ※ ▼ PHP ドキュメントに以下のような記述があります 例2 globalのかわりに$GLOBALSを使用する
<?php // ************************ // 定義で参照渡し // ************************ function plus( &$a, $b ) { $a += $b; } $x = 10; plus($x,5); print $x; print "<hr>"; // ************************ // global キーワード // ************************ function plus3() { global $z; $z[0] += $z[1]; } $z = array(10,5); plus3(); print_r( $z ); print "<hr>"; // ************************ // $GLOBALS(スーパーグローバル) // ************************ function plus4() { global $z; $GLOBALS['z'][0] += $GLOBALS['z'][1]; } $z = array(10,5); plus4(); print_r( $z ); print "<hr>"; ?>
|