Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z wykryciem referencji pomiędzy tablicami., Fatal error: Nesting level too deep - recursive dependency
szagi3891
post
Post #1





Grupa: Zarejestrowani
Postów: 109
Pomógł: 9
Dołączył: 12.03.2007
Skąd: kraków/tarnobrzeg/baranów/suchorzów

Ostrzeżenie: (0%)
-----


  1. $tab = array();
  2.  
  3. $tab['zm'] = 'val';
  4. $tab['ref'] = &$tab;
  5.  
  6. print '<pre>';
  7.  
  8. var_dump($tab);
  9. print '<hr/>';
  10.  
  11. var_dump($tab['ref'] === $tab);
  12. print '<hr/>';


Jako wynik działania tego skryptu dostajemy :

  1. array(2) {
  2. ["zm"]=>
  3. string(3) "val"
  4. ["ref"]=>
  5. &array(2) {
  6. ["zm"]=>
  7. string(3) "val"
  8. ["ref"]=>
  9. *RECURSION*
  10. }
  11. }
  12.  
  13. Fatal error: Nesting level too deep - recursive dependency? in /home/szagi3891/ftp/baselib_site/ciemnia2.notatki.info/_error/ref.php on line 14


Czy ktoś wie jak wykryć referencję ? Nie wiedząc czemu ale operator === się gubi przy próbie wykrycie referencji tablicowej.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zbig
post
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 30
Dołączył: 5.05.2007
Skąd: Mannheim

Ostrzeżenie: (0%)
-----


Witam !

Na moje oko nie jest to blad PHP - tylko blad logiczny w budowie tablicy.
Przeciez umieszczajac jako element tablicy jej referencje do samej siebie, tworzysz niekonczacy sie rekursywny twor.

Zroc uwage ze $tab['ref'] = &$tab znaczy dokladnie tyle ze element $tab['ref'] zawiera referencje do tablicy $tab, ktorej z kolei ostanim elementem jest $tab['ref'], ktory zawiera referencje do $tab i tak w kolko.
To szczescie ze PHP w inteligentny sposob wykrywa to zapetlenie i wyrzuca ci error, anie zawiesza kompa. (IMG:style_emoticons/default/wink.gif)

Poprobuj tego numeru z innymi jezykami, to bedziesz musial wtyczke z kontaktu wyciagac, zeby kompa wylaczyc (IMG:style_emoticons/default/biggrin.gif)

Pozdrawiam

Ten post edytował zbig 8.09.2011, 07:32:51
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 03:34