Well, here's a bunch of examples for you) The main use of links is to ease the code and save memory, because reference by reference does not copy the object.
$arr = array(1, 2, 3); foreach ($arr as &$v) $v = 5; var_dump($arr); $array = array(array(2, 3, array(15, 16)), array(1, 2, 3)) function &array_get(&$arr) { $tmp = &$arr; for ($i = 1; $i < func_num_args(); $i++) { $code = func_get_arg($i); if (!isset($tmp[$code])) return false; $tmp = &$tmp[$code]; } return $tmp; } $var = &array_get($array, 0, 2, 0); echo $var; // 16 $var = 22; // изменит значение в массиве function my_recursive_procedure(&$array) { foreach ($array as &$v) if (is_array($v)) { my_recursive_procedure($v); } else $v = str_replace('a', 'b', $v); } // без ссылок было бы более громоздко + скопировался бы весь массив my_recursive_procedure($array);