Większość poważnych serwisów posiada wbudowane mechanizmy rotacji. Służą one do losowania ciągów znaków, banerów, ankiet i innych rzeczy. Zastanawiające może być dla Ciebie w jaki sposób można to osiągnąć.
Na rozwiązanie tego problemu jest wiele sposobów, ale ja przedstawię ten najczęściej stosowany. W tym celu musisz zapoznać się z jedna z wbudowanych w PHP funkcją, a mianowicie chodzi tu o funkcje rand(). Będzie nam jeszcze tylko potrzebna funkcja srand(), która inicjalizuje generator liczb losowych. Teraz spróbuje wytłumaczyć ich działanie na przykładzie.
srand(time()); $losowa = rand(); print “Liczba losowa to: $losowa”; |
Jak widać nie jest to nic trudnego. Bywają jednak przypadki kiedy potrzebujemy dokonać losowania z przedziału liczb. W tym wypadku w argumentacji funkcji rand() należy podać ten przedział oddzielając przecinkiem granice górną i dolną:
srand(time()); $losowa = rand(12, 24); print “Liczba losowa z przedziału 12-24 to: $losowa”; |
Nie wiem czy zauważyłeś, ale przy inicjalizacji generatora liczb losowych, czyli w funkcji srand() dodałem jeden argument. Jest to funkcja time(), która zwraca bieżący czas liczony co do sekundy. W ten sposób wartość funkcji rand() będzie miała w każdej sekundzie inną wartość. Można także korzystać z innych funkcji w inicjalizacji, np. microtime() albo stosować własne definicje. Jednak żeby zbytnio nie poruszać obszerniejszych tematów pozostanę przy funkcji time().
Teraz na przykładzie pokażę jak można wykorzystać rotacje z zastosowaniem tablic.
Najpierw stworzę przykładową tablice:
$tab[0] = ‘1 wartość’; $tab[1] = ‘2 wartość’; $tab[2] = ‘3 wartość’; $tab[3] = ‘4 wartość’; |
Skoro mamy już gotowy przykład tablicy, zastosuje odpowiednią konstrukcje, która będzie losowała elementy z tej tablicy.
srand(time()); $losowa = $tab[rand()%count($tab)]; print “Wartość losowa z tablicy to: $losowa”; |
Jak zapewne zauważyłeś w tym wypadku skorzystałem z nieco innej konstrukcji. Jej zastosowanie jest tu uwarunkowane tym, że tablica jest indeksowana od 0. W przeciwnym przypadku funkcja mogłaby się odwoływać do pustych elementów tablicy. Dlatego też w tym wypadku należałoby stosować argumentacje przedziału.
Wiesz już jak korzystać z rotacji, więc spróbuj teraz sam z nimi poeksperymentować. Na dobry początek możesz spróbować napisać własny rotator obrazków. Zresztą to już twoja w tym głowa.