Rozmiar PHP: rozmiar tablic i obiektów, skracający czas wykonywania skryptów

Funkcja sizeof jest aliasem count () w PHP, count (), dostaje szereg „klucz - wartość” tablicy lub obiektu. Parametr wymagany jest tablicą lub obiektu opcjonalnie - COUNT_RECURSIVE druga wartość, lub 1 (domyślnie 0), jeśli jest zainstalowany uważa rekurencyjnie.

PHP: Jak zmniejszyć liczbę iteracji w pętli i skrócić czas wykonywania skryptu?

Ponieważ count () i sizeof php są często używane w pętlach, powinieneś dokładnie je przestudiować.

$ array = array (
"fruit" = & gt; array (
"Apple"
"banany,"
"pomarańczowa",
),
"warzywa" = & gt; tablica (
"ziemniaki",
"pomidory", (14 )),
);

echo "Default =" .sizeof ($ tablica); //Default = 2
echo "Recursive =" .sizeof ($ tablica, 1); //Recursive = 7

Testowanie dużych tablic w pętli (ponad 65.000 pozycji) wykazało, że sizeof () zamiast count (), więc ma to sens, aby zastosować go w praktyce.

Związek pośredni scenariusz asynchroniczny = „//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt ;! - fb_336x280_1 - & gt;

& lt; skrypt & gt; (adsbygoogle = window.adsbygoogle || []). push ({});

W cyklach zawsze lepiej zastąpić zmienną sizeof php, w przeciwnym razie rozmiar matrycy będzie określony w każdej iteracji, co spowalnia proces.

$ test = array (123 4);
$ sizeof_test = sizeof ($ test);
($ it = 0; $ echo $ Test [$ to],
}
,

Jeżeli cykl testowy 1000 wartości odnobaytnыh czas przepływania fabrycznie ze zmienną mniej 250 razy

rozpatruje tablicę wartości zerowej.

$ test2 = tablica (”Null, pozornie, 0),
var_dump (sizeof ($ test2) ) //drukuje int

var_dump (sizeof (array_filter ($ test2))) //drukuje int

,

Jak widać z przykładu, sizeof php (i liczby też)weź pod uwagę liczbę elementów, w tym zero, dlatego należy wziąć pod uwagę i (jeśli to konieczne) usunąć puste wartości za pomocą array_filter lub innej funkcji użytkownika.

& lt; script async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt ;! - fb_336x280_2 - & gt;

& lt; skrypt & gt; (adsbygoogle = window.adsbygoogle || []). push ({});

Dodaj tablicę $ test2:

$ test2 = array (", zero" false ", 0 array ()); //print int 


$ test2 = array (", zero," false ", 0 tablica (null)); //wyświetli int


var_dump (sizeof (array_filter ($ test2)));
,

W tym przykładzie array_filter usunięte wszystkie puste wartości tablicy jednowymiarowe, ale nie jest rekurencyjne działanie, dzięki czemu wartość „brak”, „wewnętrzny” pozostaje w stanie stałym, co oznacza, że ​​pozwala na sizeof php.

Zobaczmy, co się stanie, jeśli usuniesz plik tablicowy?

​​
$ test2 = array (", zero, false", 0 array ()); //output int 
$ test2 = array (", zero," false " , 0 tablica (zero)); //drukuje int ,
$ t_rec = tablica ("zerowy 'fałszywe' 0 Tablica ()) //drukuje int ,
$ t_rec = tablica (" zerowy „fałszywy ', 0 array (null)); //output int

var_dump (sizeof ($ test2));
var_dump (sizeof ($ t_rec, 1));

Jeśli puste nie zostały celowo wprowadzone do kodu, lepiej jest się ich pozbyć za pomocą funkcji filtru przed uruchomieniem pętli. Spowoduje to usunięcie dodatkowych iteracji cyklu i skrócenie czasu wykonania procesu.

,

, jak obliczyć obiektu StdClass json_decode utworzonych za pomocą php sizeof?

$ json = '{' foo ': bar, numer: 10, samochód: BMW} ";
$ stdInstance = json_decode ($ json);
var_dump (sizeof ((array) $ stdInstance)); //wyświetla int

var_dump (sizeof (get_object_vars ($ stdInstance))); //wyświetla int
,

sizeof () określa liczbę elementów w macierzy lub obiektu dające się zliczyć. StdClass nie jest ani tym, ani drugim. Aby uzyskać obiekt w postaci tablicy,użyj funkcji get_object_vars. Pierwsza opcja (tablica) również działa, ale nadal druga opcja wydaje się bardziej niezawodna.
Get_object_vars służą do uzyskiwania niestatycznych właściwości obiektu, co doskonale pasuje do naszego przykładu.

Powiązane publikacje