Если я сделаю копию ссылочной переменной. Является ли новая переменная указателем или она содержит значение переменной, на которую ссылался указатель?
Он содержит значение. Если вы хотите указать, используйте оператор &
для копирования другой ссылки:
$ a = 'test'; $ b = & $ a; $ c = & $ b;
Давайте сделаем быстрый тест:
<?php $base = 'hello'; $ref =& $base; $copy = $ref; $copy = 'world'; echo $base;
Результат hello
, поэтому $copy
не является ссылкой на %base
.
Позвольте мне затушить воду с помощью этого примера:
$a = array (1,2,3,4); foreach ($a as &$v) { } print_r($a); foreach ($a as $v) { echo $v.PHP_EOL; } print_r($a);
Вывод:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) 1 2 3 3 Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 3 )