• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przekazywanie parametrów do metody/funkcji

0 głosów
352 wizyt
pytanie zadane 9 marca 2018 w PHP przez Bartess Gaduła (3,630 p.)
edycja 9 marca 2018 przez Bartess

Cześć.
Może głupie pytanie...
Załóżmy, że mam w klasie metodę:

zrobCos($a, $b = '', $c = ''){
    if($b != ''){
        ......
    } else if($c != ''){
        ......
    } else {
        ....
    }
}

Metodę mogę wywołać na 3 sposoby:

$wynik = obiekt->zrobCos($parama);
$wynik = obiekt->zrobCos($parama, $paramb);
$wynik = obiekt->zrobCos($parama, $paramb, $paramc);

A czy da się wywołać metodę dla $parama oraz  $paramc, ale bez $paramb inaczej, niż tak?

$wynik = obiekt->zrobCos($parama, '', $paramc);

Czy w ogóle tak przykombinowana metoda jest szczęśliwym rozwiązaniem, czy po prostu błędem programisty?
Dzięki za sugestie i pomoc
Bartess

2 odpowiedzi

+2 głosów
odpowiedź 9 marca 2018 przez Ehlert Ekspert (215,070 p.)
wybrane 10 marca 2018 przez Bartess
 
Najlepsza
Nie warto się bawić w takie kombinacje. Polecam przekazać tablicę params i wewnątrz ciała wykonać odpowiednią logikę dla przekazanych parametrów.

W JS jest to popularne. Przykładem może być użycie ajax w jQuery.
komentarz 9 marca 2018 przez Bartess Gaduła (3,630 p.)
A tak... z „polskiego na nasze”? Jak w PHP przekazać tablicę params i jak ją obsłużyć?

Dzięki.
2
komentarz 10 marca 2018 przez Assasz Nałogowiec (30,460 p.)
public function foo(array $params)
{
    foreach($params as $param){
        ...
    }
}

$array = ['a', 'b', 'c'];

foo($array);

Może tak?

+1 głos
odpowiedź 9 marca 2018 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)

Oczywiście, że metoda, może mieć parę parametrów i tak rozwiązanie jest jak najbardziej okej. Tylko jest jedna zasada, że wartość zmiennej z góry przypisanej w deklaracji metody musi być po pierwszym parametrze, czyli tak:
 

function show($param, $param2 = null, $param3 = null)
{
    //...
}

wtedy możesz wywoływać tak, np funkcje:
 

show($param);
show($param, $param2);
show($param, $param2, $param3);

 

Podobne pytania

0 głosów
0 odpowiedzi 142 wizyt
pytanie zadane 27 września 2019 w PHP przez gambi Początkujący (350 p.)
0 głosów
0 odpowiedzi 426 wizyt
0 głosów
1 odpowiedź 489 wizyt
pytanie zadane 17 stycznia 2017 w C i C++ przez BeSSeSSt Obywatel (1,190 p.)

93,604 zapytań

142,529 odpowiedzi

322,996 komentarzy

63,092 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...