Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]dziwne [?] porównanie w "if"
Forum PHP.pl > Forum > Przedszkole
Zeppelin
hej,
Przerabiam z pewnej ksiazki takie tam przyklady i trafilem na dziwne "coś" w instrukcji warunkowej "if", szukalem w roznych manualach itp. w necie, ale nie znalazle... moze to blad druku?

ma to następującą postać:

if ($zmienna & 1)
{
jakiś tam kod;
}

dzieki z gory za pomoc
erix
Nie błąd w druku. ;] Jest to mnożenie bitowe.

http://pl.php.net/manual/en/language.operators.bitwise.php
kfc4
Operacje bitowe. Tu jest dokładnie mnożenie bitowe.
Cytat
Bit wynikowy jest równy jeden tylko jeśli oba bity są równe jeden
Zeppelin
dzięki ! ["pomógł" już dodany smile.gif ]

hmmm... mnozenie bitowe rozumiem.. hmmm

czyli, że jeśli mamy:

$zmienna = 5-4;

if ($zmienna & 1)
{
jakiś tam kod;
}

to "jakiś tam kod" się wykona?

dobrze rozumiem? smile.gif
sadistic_son
Tak. I analogicznie:
  1. $zmienna = 5-3;
  2.  
  3. if ($zmienna & 2)
  4. {
  5. echo'jakiś tam kod;';
  6. }
tongue.gif
seth-kk
...ale wykozystywanie go w ten sposob to kiepski pomysl
efektem operacji bitowych sa inne wartosci ale nie sa to wartosci logiczne
np
  1. $zmienna = 6;
  2. if($zmienna & 2)
  3. {
  4. echo 'jakis tam kod;';
  5. }
erix
Dlaczego kiepski? Masz np. prosty system uprawnień:
  1. $permissions = 31;
  2.  
  3. define('PERMISSION_CAN_ASD', 1);
  4.  
  5. if($permissions & PERMISSION_CAN_ASD){
  6. //
  7. }

a jak dokładniej działa, vide: error_reporting.
seth-kk
erix - twoje przyklady wybiegaja poza 'ten sposob' winksmiley.jpg
chodzilo mi o to ze nie jest to zamiennik dla '==' ...
...mozliwe ze potraktowalem powyzsze przyklady zbyt doslownie, zwlaszcza sadystycznego...
thek
A ja i tak uważam, że najlepszym zastosowaniem operacji bitowych są wszelkiego rodzaju filtry, maski smile.gif Najlepiej się w tej roli sprawdzają. Chyba za dużo C winksmiley.jpg
erix
Cytat
chodzilo mi o to ze nie jest to zamiennik dla '==' ...

Ale w praktycznym zastosowaniu - jest. ;]

Tylko inny sposób porównywania danych - nie 1:1, tylko wybrany bit.
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.