Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Instrukcja warunkowa
Forum PHP.pl > Forum > Przedszkole
traveler
W jednym ze skryptów, który chcę wykorzystać jest taki oto fragment:
CODE
if ($row_counter & 1) {
$row_color = "row2";
}

Nie bardzo wiem o co chodzi w warunku ($row_counter & 1). Przetłumaczy ktoś początkującemu?

Pozdrawiam i z góry dziękuję.
TrevorGryffits
Łoż... Poszukaj pod tematem operacje bitowe. Dorzucę jakiegoś ładnego linka za chwilę.
traveler
Łoł, ale macie tempo! Myślałem, że na odpowiedzi czeka się dłużej...

@fifi209 Bo tu chodzi właśnie o przekazywanie przez referencję. Mniej więcej wiem o co chodzi z tego rodzaju przekazywaniem (tak mi się wydaje). Ale tego fragmentu akurat nie rozumiem, a chciałbym (nawet bardzo). Chodzi o taką funkcję:
CODE
function table_row_format (&$row_counter) {
if ($row_counter & 1) {
$row_color = "row2";
} else {
$row_color = "row1";
}
$row_counter++;
return $row_color;


Może teraz będzie prościej coś mi podpowiedzieć?
TrevorGryffits
Nie chodzi o referencję. Serio:) To tylko podobieństwo operatorów. Blog na którym ładnie było wszystko opisane padł/czy coś i postaram się wyłuszczyć sprawę tutaj. Będę edytował co jakiś czas więc sprawdzaj.

@edit: OPERACJE BITOWE
Dla komputera wszystko, jak wiadomo, jest liczbą. Co gorsza - liczbą w systemie dwójkowym. Wynika z tego, że np. liczba 2 dla komputera wygląda tak - 10, a na przykład 23 będzie równe 10111. Liczba 23 składa się z 5 bitów, każdy przyjmuje wartość 1 lub 0. Operacje bitowe polegają na operacjach na własnie tych pojedynczych bitach. Operator bitowy AND (w PHP &) działa w następujący sposób:
Kod
23 & 2 = 2
10111 & 10 = 10
   10111
&  00010
--------
   00010

Innymi słowy - w wyniku zostaje tylko ten bit, który jest załączony i w jednej i w drugiej liczbie.
Nawiasem - operacje bitowe (i związane z nimi tzw. flagi) to dosyć konkretne "narzędzie" i warto je sobie dokładnie przyswoić.
traveler
Dzięki za pomoc. Do tej funkcji przekazywana jest zmienna przez referencję jako argument. Teraz już wiem, że w warunku:
CODE
if ($row_counter & 1) {
$row_color = "row2";
}

chodzi o sprawdzenie czy iloczyn logiczny daje w wyniku 0 czy 1. Jeżeli zero, tzn. że argument jest liczbą nieparzystą, natomiast kiedy iloczyn przyjmuje wartość 1, jest to liczba parzysta. Jestem z siebie dumny! Jeszcze raz dzięki za pomoc.
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.