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
|
|