Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Operatory bitowe i definicje
Seth
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Ciezko zadac jedno pytanie bez przedstawienia tego co juz mam, wiec zaczne od poczatku:


Wpadlem na pomysl ujednolicenia kilku metod w mojej klasie i zrobienia z niej jednej.
Do tej pory mialem takie metody jak:
Cytat
sendErrorMsg()
sendActivationMsg()
sendFailureMsg()


...a obecnie:
Cytat
sendMsg($flag)


gdzie $flag to wartosc jednej z definicji ponizej:
  1. <?php
  2. define('MSG_ERROR', 1);
  3. define('MSG_ACTIVATION', 2);
  4. define('MSG_FAILURE', 4);
  5. ?>


Jezeli chce wyslac wiadomosc typu MSG_ERROR to daje:
sendMsg(ERROR_MSG);
(Wczesniej dawalem zamiast tego sendErrorMsg())

I wszystko ladnie pieknie bo wewnatrz medoty sendMsg() mam switcha, ktory robi mniej wiecej tyle:

  1. <?php
  2. ...
  3. switch ($flag) {
  4.  case MSG_ERROR:
  5. $msg .= 'jakis tam error';
  6. break;
  7.  case MSG_ACTIVATION:
  8. $msg .= 'jakis tam activation';
  9. break;
  10.  case MSG_FAILURE:
  11. break;
  12. }
  13. ...
  14. // (tutaj kod, ktory sie powtarzal w metodach send*Msg())
  15. ...
  16.  
  17. ?>


Ale.... chce miec mozliwosc przeslania "kilku wiadomosci" czyli chce moc zrobic tak:
sendMsg(MSG_ERROR | MSG_ACTIVATION);
itp.

Tylko, ze nie wiem jak to obsluzyc w switchu. Bo za pomoca IFa moge np zorientowac sie czy mam jakas z wiadomosci (MSG_*) np tak:
  1. <?php
  2. if ($flag & MSG_ERROR) ...
  3. ?>


Ale czy rzeczywiscie trzeba pisac mase if'ow do tego? Czy nie da sie jakos switcha skonstruowac tak aby zadzialalo z takim zlozeniem flag?

Ten post edytował Seth 29.04.2006, 15:19:30
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 24.08.2025 - 09:03