Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]dziwne [?] porównanie w "if", dziwne [?] porównanie w "if"
Zeppelin
post 3.09.2009, 17:18:56
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 9.05.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
erix
post 3.09.2009, 17:25:26
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie błąd w druku. ;] Jest to mnożenie bitowe.

http://pl.php.net/manual/en/language.operators.bitwise.php


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kfc4
post 3.09.2009, 17:31:04
Post #3





Grupa: Zarejestrowani
Postów: 195
Pomógł: 18
Dołączył: 7.10.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Zeppelin
post 4.09.2009, 00:18:17
Post #4





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 9.05.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
sadistic_son
post 4.09.2009, 00:23:19
Post #5





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Tak. I analogicznie:
  1. $zmienna = 5-3;
  2.  
  3. if ($zmienna & 2)
  4. {
  5. echo'jakiś tam kod;';
  6. }
tongue.gif

Ten post edytował sadistic_son 4.09.2009, 00:24:50


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
seth-kk
post 4.09.2009, 01:00:05
Post #6





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

Ostrzeżenie: (0%)
-----


...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. }


Ten post edytował seth-kk 4.09.2009, 09:01:15


--------------------
Go to the top of the page
+Quote Post
erix
post 4.09.2009, 11:25:24
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
seth-kk
post 4.09.2009, 11:37:33
Post #8





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

Ostrzeżenie: (0%)
-----


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...


--------------------
Go to the top of the page
+Quote Post
thek
post 4.09.2009, 12:02:54
Post #9





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
erix
post 4.09.2009, 12:18:47
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 18:15