Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Błąd " Undefined offset"
veild
post 26.08.2007, 21:30:23
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 9.07.2007

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


Próbuję dojść źródła dziwnego problemu. Kiedy za drugim razem odwołuję się do tablicy $last_comment[0] (print_r z jej zawartości poniżej) otrzymuję błąd
Notice (8): Undefined offset: 0 [CORE\app\controllers\pages_controller.php, line 32].
Wiem, że można się tym zupełnie nie przejmować i łatwo wyłączyć, ale powiedzmy, że jestem phpowym purystą i chcę poznać przyczynę, dlaczego powstaje ten notice.

Mój kod wygląda w ten sposób:
  1. <?php
  2. if (!empty($last_comment))
  3. print_r($last_comment[0]);
  4. print_r($last_comment[0]);
  5. }
  6. ?>




a tablica $last_comment ma taką postać:
  1. <?php
  2. (
  3. [0] => Array
  4. (
  5. [com] => Array
  6. (
  7. [text] => Treść komentarza
  8. [date] => 2007-08-26 21:38:33
  9. )
  10.  
  11. [usr] => Array
  12. (
  13. [login] => vesper
  14. )
  15.  
  16. )
  17.  
  18. )
  19. ?>



Czy ktoś z Was zna pochodzenie tego problemu?
Go to the top of the page
+Quote Post
sticker
post 26.08.2007, 21:40:17
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


a czy w pierwszym skrypcie znana jest zawartość opisywanej tablicy? Błąd mówi że nie ma indeksu "0" w tablicy $last_comment

Jak na moje oko to pierwszy skrypt w ogóle nie widzi deklaracji tablicy pokaż cały skrypt...


--------------------
Go to the top of the page
+Quote Post
veild
post 27.08.2007, 08:07:34
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 9.07.2007

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


Przepisałem ten kod od początku i już nie ma błędu. Ale wciąż nie mam pojęcia, skąd on się brał.

Problem polegał na tym, że jeżeli wykonałem print_r tylko jeden raz, to było wszystko ok. Notice pojawiał się dopiero przy drugim wywołaniu print_r.

Czy istnieją jakieś wskaźniki aktualnego elementu w tablicy w php? Coś a'la wskaźnik ostatnio odczytanego znaku w otwartym pliku w C?
Go to the top of the page
+Quote Post
nospor
post 27.08.2007, 08:51:22
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




blad dotyczyl sie tego:
  1. <?php
  2. if (!empty($last_comment))
  3. print_r($last_comment[0]); // to idzie w if
  4. print_r($last_comment[0]);// to juz nie
  5. ?>

powinno byc tak:
  1. <?php
  2. if (!empty($last_comment)){
  3. print_r($last_comment[0]);
  4. print_r($last_comment[0]);
  5. }
  6. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
veild
post 27.08.2007, 09:07:31
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 9.07.2007

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


Auuuuććć... co za nieuwaga z mojej strony :/:/
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 20:26