При рекурсивных вызовах не отрабатывает current() в PHP 4.4.1

sokol

Zavolga.Net
При рекурсивных вызовах не отрабатывает current() в PHP 4.4.1

PHP 4.4.1
Следующий код не работает. А именно неверно работает функция current. Может я чего не понимаю? В предыдущих версиях все было ОК.

PHP:
<?php

$test_arr = array('test2', 'test1' => array('test5', 'test6'), 'test3', 'test4' => array('test7', 'test8'));

function test_func(&$test_arr) {
    do {         
        if (is_array($current_item)) {
             test_func($test_arr);
        }
        echo current($test_arr).'<br>';
    } while ($current_item = next($test_arr));
}

test_func($test_arr);

?>
 

white phoenix

Новичок
я тоже очень долго не мог понять почему такая хрень происходила, а недавно новый снапшот скомплил и приятно удивился :)
 

zarus

Хитрожопый макак
а не проще сделать что-то подобное?
PHP:
$val = array(...some_values...);
function some_eval($val,$key) {
  if (is_array($val) {
    array_walk($val,'some_eval') 
  }
  else {
     return do_something($val);
  }
}
array_walk($val,'some_eval');
Чисто подумалось...
 

sokol

Zavolga.Net
zarus Я привел чисто абстрактный пример который сгенерил чтобы показать что ф-я не работает. В реальной функциональности передача значения по ссылке нужна для однократного прохода по массиву который представляет собой дерево NestedSet и преобразования его к n-мерному массиву.

-~{}~ 20.12.05 19:42:

Я фигею. В unix версии поправили, все хорошо работает. А вот про win версию по ходу забыли. Там так этот пример и не отрабатывает. Разработчики PHP что на 4-ку уже забили?
 

sokol

Zavolga.Net
tony2001 До сих пор пример приведенный в первом сообщении не отрабатывает на win-версии 4.4.1. Вернее отрабатывает неправильно.

-~{}~ 22.12.05 16:34:

P.S.: php 4.4.1 скачивал вчера, специально потестить
 

tony2001

TeaM PHPClub
Profic
блин. вот что значит глаза зашоренные.
я даже подумать не мог о таком идиотизме.
 

sokol

Zavolga.Net
Автор оригинала: Profic
Релиз чтоли? Так его никто не менял. Используйте снапшоты: snaps.php.net.
Все равно прикольно получается, в nix версии пофиксили, официальный релиз с php.net этой проблемы не имеет, скачиваешь win версию офиц. релиза и натыкаешься на старую проблему. Я думаю, что не все скачивают снэпшоты, т.к. с ними можно огрести еще большие проблемы.
 
Сверху