Właśnie przerobione mój algorytm detekcji rekurencji w moim zwierzakiem projektu dump_r()wykrywanie rekursji nieskończonej tablicy w PHP?
https://github.com/leeoniya/dump_r.php
wykrywania obiektów rekurencji nie jest zbyt trudne - użyć spl_object_hash(), aby uzyskać unikalny wewnętrzny identyfikator instancji obiektu , przechowuj go w dyktafonie i porównuj z nim podczas wysypywania innych węzłów.
do wykrywania rekursji tablic, jestem nieco zaintrygowany, nie znalazłem nic przydatnego. sam php jest w stanie zidentyfikować rekursję, choć wydaje się, że robi to o jeden cykl za późno. EDIT: NVM, występuje tam, gdzie trzeba :)
$arr = array();
$arr[] = array(&$arr);
print_r($arr);
nie musiał uciekać się do śledzenia wszystkiego w stosie rekurencji i zrobić płytkie porównań przed każdym innym elemencie tablicy?
każda pomoc będzie doceniona,
dzięki!
lol - eeewwwww. – leeoniya
Nie jestem odpowiedzią na twój quesiton, ale widziałem rozwiązania, które testują 'print_r ($ var, true)' dla łańcucha wskazującego rekursję. To jest tak nieprzyjemne, jak to tylko możliwe, ale działa ... Zobacz [tutaj] (http://noteslog.com/post/detecting-recursive-dependencies-in-php-composite-values/), aby uzyskać przyzwoity kompromis. – Basic
Usunąłem/edytowałem mój komentarz, aby umieścić link do przykładu, ale zgadzam się, to śmierdzi – Basic