Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]plik.php?id1
Enderlanas
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 18.04.2010

Ostrzeżenie: (10%)
X----


Witam, mam problem...

Otóż nie wiem, jak zrobić coś takiego, że mam np. plik skrypt.php. Po wpisaniu mojastrona.pl/skrypt.php?id=1 wykonywała by się funkcja o idzie 1... Da się tak zrobić? Jak tak, to jak? Proszę o dokładne wytłumaczenie, nie jestem zbyt dobry w php...

Pozdrawiam ;>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
croc
post
Post #2





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Da się, ale czy to takie dobre rozwiązanie?
  1. $id = intval($_GET['id']); // bez intval tu ani rusz!
  2. $functionName = 'funkcja' . $id;
  3. $functionName();

Zakładając, że masz funkcje o nazwach funkcja1(), funkcja2(), funkcja3() itd.
Go to the top of the page
+Quote Post
toel
post
Post #3





Grupa: Zarejestrowani
Postów: 97
Pomógł: 11
Dołączył: 2.02.2010

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


ja bym tu może zaproponował switcha

  1.  
  2. switch($_GET['id'])
  3. {
  4. case '1':
  5. jakasfunkcja();
  6. break;
  7.  
  8.  
  9. case '2':
  10. jakasinnafunkcja();
  11. break;
  12.  
  13. default:
  14. print('wybrana funkcja nie istnieje');
  15. break;
  16.  
  17.  
  18. }
  19.  
Go to the top of the page
+Quote Post
parzygnat
post
Post #4





Grupa: Zarejestrowani
Postów: 155
Pomógł: 6
Dołączył: 31.12.2007
Skąd: Poznań

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


Switch jest naturalnym wyborem (jak najbardziej poprawnym), ale pamiętajcie koledzy że jest stosunkowo wolny w działaniu a rozwiązanie croc'a jest idealne przy założeniu odpowiedzniej struktury nazw funkcji.
Go to the top of the page
+Quote Post
croc
post
Post #5





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Ja też uważam, że switch jest lepszym wyborem (IMG:style_emoticons/default/biggrin.gif) Przecież tych funkcji jest określona liczba. Wywoływania funkcji to jednak zbyt podatna na niebezpieczeństwo czynność, by ot tak sobie wywoływać ją po nazwie ze zmiennej.
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #6





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Cytat
pamiętajcie koledzy że jest stosunkowo wolny w działaniu


Jak będzie miał ruch podobny do Facebooka, to się możesz zacząć switchem przejmować. Nie brnijcie w te bzdury o tym że echo jest szybsze od print, że ++$i od $i++ jest szybsze itd... To są całkowicie nieistotne w 99,99% serwisów opóźnienia.

Pozdrawiam



Przenoszę na Przedszkole
Go to the top of the page
+Quote Post
croc
post
Post #7





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Racja, ale akurat z ++$i to warto dla samej idei sobie wyrobić nawyk. Po co robić coś gorzej, skoro można tak samo, tylko lepiej? (IMG:style_emoticons/default/biggrin.gif) Ale w kwestii unikania pewnych konstrukcji, które są naturalne, ale wydają się komuś mało wydajne, to jest rzeczywiście przesada.
Go to the top of the page
+Quote Post
thek
post
Post #8





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




Fakt... Nie brnijmy, bo nawet niedawno czytałem na temat funkcji warunkowych w JS i się okazuje, że nawet if oraz switch da się optymalizować wywołaniami tablicowymi (IMG:style_emoticons/default/winksmiley.jpg) Ogólnie jest tam nawet zalecenie dla dużych serwisów w stylu:
2-3 warunki - if else, if elseif
mniej niż 10 warunków - switch
więcej niż 10 - zagnieżdżone ify w ifach
znaczne ilości - zaprzęgać tablice (wywołania indeksów tablicowych są w miarę szybkie i szybsze niż sprawdzanie switchem czy ifami dla dużej ilości możliwości).
Go to the top of the page
+Quote Post

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: 18.09.2025 - 12:47