[PHP] Dzielenie modulo
Wyznaczanie reszty z dzielenia jednej liczby przez drugą, czyli tak zwane modulo. W PHP resztę z dzielenia dwóch liczb całkowitych otrzymamy przez działanie $r = $a % $b;
, gdzie $r to reszta z dzielenia $a przez $b. Jak widać w takim działaniu używany jest operator %. Do czego może mi się to przydać? A no do wielu rzeczy.
Zero reszty z dzielenia modulo
Weźmy na ten przykład listę czegoś, np. listę produktów, którą chcemy wyświetlić na stronie, ale po każdych 5 produktach ma się pojawić większy odstęp. Czyli wyświetlamy 5 produktów, odstęp, kolejne 5, odstęp itd. Aby zrobić taki myk (zakładając, że dane wyświetlamy pętlą, np. foreach), należy przed rozpoczęciem pętli utworzyć zmienną z wartością początkową równą 0, np. $n = 0;
. Następnie już w pętli stosujemy inkrementację zmiennej $n, czyli $n++;
i wyznaczamy resztę $n = ($n % 5);
. Zmienną $n dzielimy przez 5 (po 5 produktach ma być odstęp). Pewnie już się domyślasz, że zależy w tym przykładzie na reszcie z dzielenia równej 0. Dla podzielnych przez 5 reszta z dzielenia przez 5 wyniesie 0, a kolejna inkrementacja $n rozpocznie się znów od 0. Operacja ta będzie się powtarzać aż do momentu przerwania pętli. Teraz wracając do naszej listy produktów zobaczmy poniższy przykład:
$products = ['telewizor, 'głośniki', 'wieża', 'pralka', 'suszarka', 'gofrownica', 'zmywarka', 'radio', 'odkurzacz', 'malakser']; $n = 0; foreach($products as $product) { $n++; $n = ($n % 5); echo $product . '<br />'; if($n === 0) echo '<br /><br /><br />';
// O ile warunek zostanie spełniony, czyli jeśli $n będzie równa 0 wyświetlamy odstęp po 5 produktach.}
Jak widać na powyższym przykładzie jeśli $n == 0 wyświetlamy dodatkowy odstęp po wyświetleniu każdorazowo 5 produktów. To tylko przykład do czego może w praktyce przydać się dzielenie modulo przy pisaniu skryptów.
Komentarze
Prześlij komentarz
Dzięki za komentarz!