PHP函数通过引用传递不在函数范围之外

时间:2018-01-08 22:15:14

标签: php function reference

为什么此代码打印1而不是其他任何内容?该函数通过引用传递,但引用似乎不适用于函数范围。为什么呢?

struct silly{
  operator char*()const{ return 0;}
  operator char const*() const{ return "hello"; }
};

2 个答案:

答案 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);