Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pytanie o bład parse w switchu
eminiasty
post
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

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


Mam normalnego swicha w phpie..
i wszystko dziala tylko teraz taki hak ktorego tyczy sie pytanie.

TO DZIALA:
  1. if(isset($s)){
  2. switch ($s) {
  3. case "login":
  4. include("login.php");
  5. break;
  6. include("inc/user/ads.php");
  7. break;
  8. case "profile":
  9.  
  10. if(checkLogin() && ($row['name'] != 'user') || ($row['name'] != 'mod') || ($row['name'] != 'root' )) {
  11. include("inc/user/profile.php");
  12. }
  13. else{
  14. include("inc/err.php");
  15. }
  16.  
  17.  
  18. break;
  19. case "test":
  20. include("test.php");
  21. break;
  22. default:
  23. include("inc/err.php");
  24. }
  25. }


czy da sie w tym samym switchu zrobic cos na zasadzie:


TO NIE DZIALA
  1. ...
  2. if(checkLogin() && ($row['name'] != 'user') || ($row['name'] != 'mod') || ($row['name'] != 'root' )) {
  3. case "profile":
  4.  
  5. ....
  6.  
  7. break;
  8. }
  9. ....


czyli obejmuje ifem zawartosc case

chodzi mi o to ze w ifie ma byc kilka casow i zeby nie powtarzac nascie razy tego samego ifa bo to bezsensu chyba ale moze nie da sie inaczej..
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
KsaR
post
Post #2





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


Nie, ale bardziej praktyką. (Istnieje taka zasada jak DRY - don't repeat yourself - nie powtarzaj sie).
Póki co raczej ci wydluzylo kod.
Ale teraz dodaj do tego cos typu np.
$zmienna=1;

I tak w kazdym, wtedy juz kod bedzie powtorzony, bo mozna by przeciez napisac raz :-P.
Ale za to masz latwa edycje itd zamiast kazdego to mozesz 1.. Itp
--
Mialem raz podobny switch, to tak sie rzucilo w oczy.
Musialem zmienic kazdemu sciezke do include, na podfolder, i/lub pod-podfolder.
I lipa, bo bylo ich ponad 60.
Dalbym konkretniejszy przyklad ale go nie pamietam.
Wiem ze mi bardzo ulatwilo to, bo moglem zrobic np.
$x=false; przed switchem, i w ewentualnych case dodac $x=true;
I zamiast prawie kazdemu po kolei zmieniac sciezke, moglem copy-paste $x=true; (IMG:style_emoticons/default/tongue.gif)

i w include np.
include '/xxx/'.($x?'/yyy/':'').$inc.'.php';

Ten post edytował KsaR 17.09.2015, 21:48:59
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: 27.12.2025 - 19:27