php中的数组引用问题


issue with array reference in php

我试图运行以下代码:

$a = array('aa');
function my_func (& $m) {
    return $m;
}
$c = & my_func($a);
$c[] = 'bb';
var_dump($a);
echo '--------';
var_dump($c);

我的期望是$a和$c有相同的引用。但结果是不同的。

结果是:

array(1) { [0]=> string(2) "aa" } --------array(2) { [0]=> string(2) "aa" [1]=> string(2) "bb" } 

上面的代码有什么问题?

我认为你正在寻找的是通过引用返回的函数(这与在你的例子中通过引用传递相结合)。

下面是一个例子:

function &my_func(&$m) {
    return $m;
}
$a = array('aa');
$c = &my_func($a);
$c[] = 'bb';
var_dump($a);
echo "---'n";
var_dump($c);

输出:

array(2) {
  [0]=>
  string(2) "aa"
  [1]=>
  string(2) "bb"
}
---
array(2) {
  [0]=>
  string(2) "aa"
  [1]=>
  string(2) "bb"
}