Ошибка в РНР?

Роберт

Аналитик
Ошибка в РНР?

Если я в функцию передаю аргумент по ссылке и делаю ему там unset - то вернувшись из функции он остаётся живым , как буд-то unset не производилось... Это ошибка РНР?
Например:
---
PHP:
<?
Function aaa(&$m)
{
...
unset($m);
}

$m[]=1;
$m[]=2;
aaa($m);
$m[]=1;
print_r($m);
?>
---
Получаю: Array ( [0] => 1 [1] => 2 [2] => 1 )
:(
 

Роберт

Аналитик
Снимаю тему... Просто работал по аналогии с другими языками программирования , и считал что если передаётся ссылка на аргумент , то он и будет уничтожен... :(
 

Crazy

Developer
Передается ссылка. А уничтожается unset'ом -- переменная. В данном случае -- локальная. С чего бы это должно было приводить у уничтожению другой переменной в другой процедуре, содержащей то же ссылочное значение?
 

AmdY

Пью пиво
Команда форума
в мануале есть статья посвящённая передаче по ссылке и что там не так как в других языках.
кстати, очень популярный вопрос на собеседаваниях.
 
Сверху