Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]plik.php?id1
Forum PHP.pl > Forum > Przedszkole
Enderlanas
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 ;>
croc
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.
toel
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.  
parzygnat
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.
croc
Ja też uważam, że switch jest lepszym wyborem 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.
Cysiaczek
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
croc
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? biggrin.gif Ale w kwestii unikania pewnych konstrukcji, które są naturalne, ale wydają się komuś mało wydajne, to jest rzeczywiście przesada.
thek
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 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).
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.