обнаружение бесконечной рекурсии массивов в PHP?

я только что переработал свой алгоритм обнаружения рекурсии в своем проекте dump_r()

https://github.com/leeoniya/dump_r.php

обнаружение рекурсии объектов не слишком сложно - вы используете spl_object_hash() для получения уникального внутреннего идентификатора экземпляра объекта, сохраняете его в dict и сравниваете с ним при дампе других узлов.

что касается обнаружения рекурсии массивов, я немного озадачен, я не нашел ничего полезного. php сам способен определить рекурсию, хотя кажется, что он делает это на один цикл слишком поздно. EDIT: nvm, это происходит там, где нужно :)

$arr = array();
$arr[] = array(&$arr);
print_r($arr);

приходится ли ему прибегать к отслеживанию всего в стеке рекурсии и делать неглубокие сравнения с каждым другим элементом массива?

любая помощь была бы признательна,
спасибо!

14
задан leeoniya 28 January 2012 в 01:32
поделиться