PHPのリファレンスリファレンス返し$num = 10; function &func1() { global $num; return $num; } $ref =& func1(); $ref = $ref + 1; print $num; // => 11
$num = 10; function &func1() { $num = $GLOBALS['num']; return $num; } $ref =& func1(); $ref = $ref + 1; print $num; // => 10 注意:11ではない!
$num = 10; function &func1() { $num =& $GLOBALS['num']; return $num; } $ref =& func1(); $ref = $ref + 1; print $num; // => 11 $GLOBALSを使う場合、=& で取り出す。 関数内でのグローバル変数の参照PHPマニュアルより
function func1($flg) { global $g1, $g2; if ($flg) { $g2 =& $g1; } else { $GLOBALS['g2'] =& $g1; } } $g1 = 1; $g2 = 2; func1(true); // globalを使う print "$g1 $g2\n"; // => 1 2 $g1 = 1; $g2 = 2; func1(false); // $GLOBALS[]を使う print "$g1 $g2\n"; // => 1 1 function func1($flg) { global $g1, $g2; if ($flg) { $g2 = $g1; } else { $GLOBALS['g2'] = $g1; } } $g1 = 1; $g2 = 2; func1(true); // globalを使う print "$g1 $g2\n"; // => 1 1 $g1 = 1; $g2 = 2; func1(false); // $GLOBALS[]を使う print "$g1 $g2\n"; // => 1 1 |
|