Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Undefined offset... Tylko, że...
Forum PHP.pl > Forum > PHP
NetBeans
Cześć. Mam strasznie dziwny, nie logiczny jak dla mnie i w ogóle chory błąd.
Otóż po eksplozji stringa (data), przykładowo 2013-11-19, otrzymuję tablicę o trzech elementach mianowicie 2013, 11 oraz 19. Potwierdza to mój debugger, jak również print_r().

  1. Array ( [0] => 2013 [1] => 11 [2] => 19 )


Jak widzimy są dokładnie trzy elementy. Gdy później chcę wykorzystać jakiś element tej tablicy dostaję undefined offset...
Oto cały mój kod, żeby nie było wątpliwości.

  1. $dateItems = explode('-', $this->date);
  2. $newDate = $dateItems[2] . '.' . $dateItems[1] . '.' . $dateItems[0];


Szczerze mówiąc, to zgłupiałem... Ma ktoś pomysł co z tym zrobić?
Szymciosek
Podaj jeszcze co trzymasz w $this->date.
NetBeans
var_dump dla $this->date.
Jest to po prostu data, zmienia się w zależności od tego, jaką sobie ustawi użytkownik. Prosta sprawa. Pisałem to wyżej.

  1. string '2013-11-15' (length=10)
Szymciosek
Szczerze nie widzę u Ciebie błędu.

zrobiłem tak:
  1. $date = '2013-11-15';
  2. $dateArr = explode('-', $date);
  3. echo $dateArr[2] . '.' . $dateArr[1] . '.' . $dateArr[0];


i działa bez problemu.

Musisz posprawdzać dla pewności, najlepiej krok po kroku jakie wartości, gdzie masz.
Turson
Cytat
Oto cały mój kod, żeby nie było wątpliwości.

Na pewno nie cały skoro używasz $this


Rzeczywiście dziwna sprawa, bo na podstawie kodu, który podałeś wszystko wygląda prawidłowo.
Może sprawdź dla pewności, czy na pewno wywala błąd w tej linii smile.gif
NetBeans
No oczywiście, że to nie cały kod. Po co Ci kod całego modelu smile.gif Przedstawiłem kod, który jako jedyny manipuluje właściwością "date". Jasny gwint, nie wiem co jest nie tak. Właśnie dlatego, że wszystko jest tak, jak być powinno. Masakra. sad.gif
Mlodycompany
jeśli chcesz zmienić format daty to nie baw się rozdzielaniem tylko funkcja date()

  1. date("d-m-Y", strtotime($this->date))
nospor
1) Jestes pewien ze blad odnosi sie do tego wlasnie kodu?
2) Jesli TAK, to zapewne kod ten odpalany jest kilkukrotnie i akurat dla ktoregos tam odpalenia zmienna $this->date nie zawiera tego co sobie myslisz. PHP nie pluje nigdy bledami bez powodu.
tomxx
Błąd musi być gdzieś w miejscu, którego nie podałeś, bo ten kod który pokazałeś sam w sobie jest prawidłowy.
com
dobra znawcy nospor dał jasną i klarowna odp czemu rzuca notica wink.gif i tą drogą trzeba iść.. najlepiej zrób var_dump($this->date); po każdej jej zmianie wtedy dojdziesz gdzie Ci jej nie tworzy wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.