Я люблю тебя, php!

Есть такая малоизвестная большинству программистов вообще и программистов на пхв в частности как ссылки. И вот я решил открыть для себя новое и выполнил невероятно сложный и запутанынй кусок кода:

< ?php
$a = array(1,2);
foreach($a as &$v) {
    $v = abs((int)$v);
}
var_dump($a);

И получил совершенно неожиданный для себя результат:

array(2) {
    [0]=>
    int(2)
    [1]=>
    &int(3)
}

Оказалось мой любимый пхп засунул в последний элемент массива ссылку на последний элемент массива. Спасибо, пхп! Писать следует вот так:

< ?php
$a = array(1,2);
foreach($a as &$v) {
    $v = abs((int)$v);
}
unset($v);
var_dump($a);

2011.07.05 12:53