为什么此代码打印1而不是其他任何内容?该函数通过引用传递,但引用似乎不适用于函数范围。为什么呢?
struct silly{
operator char*()const{ return 0;}
operator char const*() const{ return "hello"; }
};
答案 0 :(得分:0)
修改函数中的变量 a 时,它未在外部修改,因为它未定义为全局变量,因此 a 的值仍然存在在调用函数之前声明的 1 。如果您尝试在global $a;
之前添加$a =& $b;
,那么您将获得$a = 2;
答案 1 :(得分:0)
将$a =& $b;
更改为$GLOBALS['a'] =& $b;
OR
function a(&$a, &$b) {
$a =& $b;
return $a;
}
$a = 1;
$b = 2;
print a($a, $b);