Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: count() liczy puste tablice jako 1
Forum PHP.pl > Forum > PHP
tomilipin
Witam,
opiszę szybko mój problem:

mam funkcję, zwracającą wyniki w postaci tablic zagnieżdżonych w sobie (2 poziomy) i muszę policzyć ile ich jest. Wynik funkcji wygląda na przykład tak:
  1. <?php
  2. (
  3. [0] => Array
  4. (
  5. [id] => 1
  6. [autor] => test1
  7. [tresc] => test1asd
  8. )
  9.  
  10. [1] => Array
  11. (
  12. [id] => 2
  13. [autor] => test2
  14. [tresc] => test2qwe
  15. )
  16.  
  17. [2] => Array
  18. (
  19. [id] => 3
  20. [autor] => test3
  21. [tresc] => test3zxc
  22. )
  23.  
  24. )
  25. ?>


Jak dodam pierwszy wpis, i mam jeden rekord, to wynik brzmi 1. Gdy mam 3 rekordy i je zliczę to otrzymuję wynik 3. Ale gdy nie ma wcale rekordów, to funkcja count() zwracaj wynik 1 blinksmiley.gif
Jak to możliwe...? I jak temu zaradzić?
kevinsz
Nie wiem, jak dokładnie masz w kodzie, ale może jednak nie wywołujesz fukncji count na tablicy, kiedy jest pusta? Cytat z dokumentacji: "If var is not an array or an object with implemented Countable interface, 1 will be returned."
domis86
inicjuj zawsze pustą zmienna jako:
  1. <?php
  2. $tablica = array ();
  3. ?>

przed wlozeniem do niej danych i wszystko bedzie dobrze
tomilipin
Ok, zastosuję się do wskazówek.
Zmienna faktycznie nie jest definiowana jako tablica, od razu są do niej wrzucane wartości.

Zauważyłem też, że problem występuje tylko u mnie na localhoście. Po uploadzie na zewnętrzny serwer (band.pl) wszystko działa normalnie, count zwraca 0 gdy zmienna jest pusta (tablica czy nie)...

Poprawię. Dziękuję za pomoc smile.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.