有点难度的问题.
------代码-----------
<pre>
<?php
$gVar = 'aaaa';
var_dump(array('返回值' => test($old = 1, $new = 2, $gVar = & $gVar), '旧变新' => $old));
var_dump(array('最后' => $old));
$old = 1;$new = 2;
var_dump(array('返回值' => test($old , $new , $gVar), '旧变新' => $old));
var_dump(array('最后' => $old));
exit;
function test (& $old, $new, & $test) {
global $gVar;
var_dump(array( &$gVar, &$test ));
var_dump(array('新值' => $new, '旧值' => $old, '未赋值时'));
return $old = $new or var_dump(array('新值' => $new, '旧值' => $old, '赋值为false'));
}
--------------结果---------
array(2) {
[0]=>
&string(4) "aaaa"
[1]=>
&string(4) "aaaa"
}
array(3) {
["新值"]=>
int(2)
["旧值"]=>
int(1)
[0]=>
string(8) "未赋值时"
}
array(2) {
["返回值"]=>
bool(true)
["旧变新"]=>
int(1)
}
array(1) {
["最后"]=>
int(1)
}
array(2) {
[0]=>
&string(4) "aaaa"
[1]=>
&string(4) "aaaa"
}
array(3) {
["新值"]=>
int(2)
["旧值"]=>
int(1)
[0]=>
string(8) "未赋值时"
}
array(2) {
["返回值"]=>
bool(true)
["旧变新"]=>
int(2)
}
array(1) {
["最后"]=>
int(2)
}
-------------问题---------
二次
array(1) {
["最后"]=>
int(2)
}
是不同的.
谁能解答
funcName ($var = 3)
与
funcName (& $var)
配合的"怪结果"?