Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Opcjonalny argument w funkcji
Forum PHP.pl > Forum > Przedszkole
kina0
Czesc

mam przypuscmy taka klase:

  1. <?php
  2.  
  3. class Pokaz extends Wyswietlanie
  4. {
  5.  
  6. function __construct()
  7. {
  8. parent::Wyswietlanie();
  9. }
  10.  
  11. function pokaz_strone($id_strony)
  12. {
  13. return $this->pobierz($id_strony);
  14. }
  15.  
  16. function pobierz($id)
  17. {
  18. // pobieranie z bazy danych
  19. }
  20.  
  21. }
  22. ?>


Nie moge sobie poradzic z rozwiazaniem mojego problemu. Otoz metoda pokaz_strone zawiera argument $id_strony
Jak mozna zrobic aby ten argument byl opcjonalny? jezeli podam ten argument to zostanie wyswietlona metoda pobierz, a jezeli nie to wyswietli sie inna metoda.

Bo w moim wypadku gdy nie wpisze argumentu wyswietla sie error Missing argument......
Jakies pomysly?
webdice
  1. <?php
  2. function pokaz_strone($id_strony = 0)
  3. ?>


W metodzie tworzysz sobie odpowiedni warunek gdy zmienna id_strony będzie równa 0 (czyli gdy argument nie zostanie podany).

EDIT: Właśnie poprawiłem jeszcze przed tym jak napisałeś winksmiley.jpg. Niedawno wstałem.
Crozin
Tak jak w przypadku normalnych f-cji:
  1. <?php
  2. function abcd($param = null){
  3. //pierwszy arg jest opcionalny
  4. if($param === null){
  5. //nie podano - badz podano wartosc domyslna
  6. }else{
  7. //podano
  8. }
  9. }
  10. ?>


EDIT:
@webdicepl: z tym, że trzeba zdefiniować domyślną wartość zmiennej - inaczej wywali nam errora winksmiley.jpg
scanner
Po pierwsze, popraw swój post, pod względem języka polskiego oraz uzycia BBCode.
Po drugie, poczytać tutaj: http://pl.php.net/manual/en/functions.argu...guments.default
Po trzecie:
  1. <?php
  2. class Pokaz extends Wyswietlanie {
  3.  
  4. function __construct() {
  5. parent::Wyswietlanie();
  6. }
  7.  
  8. function pokaz_strone( $id_strony = null ) {
  9. return $this->pobierz($id_strony);
  10. }
  11.  
  12. function pobierz( $id ) {
  13. if( is_null( $id ){
  14. return 'Strona główna';
  15. }
  16. // pobieranie z bazy danych
  17. }
  18. }
  19. ?>
kina0
Dzięki za przypomnienie, proszę o przyznanie 'pomógł'.

ps. Ostatnio w php pisalem około 1,5 roku temu, teraz wlasnie sobie przypominam 'jak to jest' winksmiley.jpg
kina0
Niestety jako gosc nie moglem edytowac BBcode, przykro mi.
Musze sie zarejestrować.

// Zapomniałeś zamknąć tag bbcode, więc zapewne wiesz o co chodzi i Cię nie upominałem,
// ale na przyszłość staraj się nie pisać pod własnymi postami.
// ~webdicepl
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.