php難しい

<?php
$b = array(10, 20);
$a = &$b;
$a = 10;
print_r($b); // 10
<?php
$b = array(10, 20);
$a = &$b;

$c = array($a, $b);
$c[1] = 10;

print_r($b);
/*
Array
(
    [0] => Array
        (
            [0] => 10
            [1] => 20
        )

    [1] => 10
)
*/

$a = &$bにしたのに$bしか変わってない! わけじゃなくて

<?php
$b = array(10, 20);
$a = &$b;

$c = array(&$a, &$b);
$c[1] = 10;

print_r($c);
/*
Array
(
    [0] => 10
    [1] => 10
)
*/

array()に渡す時にも&が必要。
とりあえず&つけとくのが正解かも。

PHPの"参照ではなくシンボルテーブルへのリンク"に配列使うとはまるのでStdClass使えば解決。