Funkcija sizeof u php je alias count (), count (), prima broj "ključ-vrijednosti" niza ili objekta. Obvezni parametar je niz ili objekt, neobavezno - druga vrijednost je COUNT_RECURSIVE, ili 1 (zadana 0), ako je instalirana, tada smatra da je rekurzivna.
PHP: Kako smanjiti broj iteracija u petlji i skratiti vrijeme izvršenja skripte?
Budući da se count () i sizeof php često koriste u petlji, trebali biste ih temeljito proučiti.
var_dump (sizeof (array_filter ($ test2))) //izlaz int
Kao što se može vidjeti iz primjera, sizeof php (i count) previše)uzeti u obzir broj elemenata, uključujući i nulu, pa je potrebno uzeti u obzir i (ako je potrebno) izbrisati prazne vrijednosti pomoću array_filter ili druge korisničke funkcije.
$ test2 = niz (", nula," false ", 0 polje (null)); //će ispisati int
var_dump (sizeof (array_filter ($ test2)));
U ovom primjeru, array_filter je izbrisao sve prazne vrijednosti jednodimenzionalnog niza, ali ova funkcija nema rekurzivno djelovanje, tako da je vrijednost "null" u "internom" nizu lijeva, što znači da je veličina php uzima u obzir.
Da vidimo što će se dogoditi ako uklonite polje array_filter?
$ test2 = niz (", nula," false ", 0 array ()); //izlaz int $ test2 = niz (", nula, "false" , 0 niz (nula)); //izlaz int $ t_rec = array (", nula," false ", 0 array ()); //izlaz int $ t_rec = array (", zero, "false) ', 0 niz (null)); //izlaz int
Ako prazni nisu namjerno uneseni u kod, bolje ih je riješiti pomoću filtarskih funkcija prije pokretanja petlje. Time ćete ukloniti dodatne iteracije ciklusa i skratiti vrijeme izvršenja procesa.
Kako izračunati StdClass objekt stvoren s json_decode pomoću sizeof php? $ json = '{' foo ': bar, broj: 10, automobil: BMW}'; $ stdInstance = json_decode ($ json); var_dump (sizeof ((array) $ stdInstance)); //će ispisati int
var_dump (sizeof (get_object_vars ($ stdInstance))); //izlaz int
Sizeof () definira broj elemenata niza ili objekta Countable. StdClass nije ni jedno ni drugo. Da biste dobili objekt u obliku niza,koristite funkciju get_object_vars. Prva opcija (polje) također radi, ali i druga opcija izgleda pouzdanije.
Get_object_vars koriste se za dobivanje ne-statičkih svojstava objekta, što je savršeno prilagođeno našem primjeru.