Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Puste argumenty funkcji
Forum PHP.pl > Forum > PHP
Mlodycompany
Witam. Otóż głowie się nad jedną rzeczą już kilkadziesiąt chwil. Otóż mam taką o to funkcjie
  1. function mfa($table, $cols='*', $where=null, $order='`ID` ASC', $limit=null){
  2. $query = mysql_query("SELECT ".$cols." FROM `".$table."` WHERE ".$where." ORDER BY ".$order." ".$limit."");
  3. $array = array();
  4. while($row = mysql_fetch_array($query)){
  5. $array[] = $row;
  6. }
  7. return $array;
  8. }
a w tej funkcji pare argumentów. Argument 1 musi być zawsze ale reszta już nie. I pytanie brzmi jak wywołać tą funkcje z podanym 1 i np. 4 argumentem. Próbowałem
  1. mfa('uzytkownicy',,,'`login` DESC'));
Czy ma ktoś na to jakąś dobrą radę?
nospor
NIestety, ale chcąc podać 4 argument, musisz po drodze podać 1,2 i 3. Niestety tak to działa.
Przerób to na jeden argument będący tablicą.
Mlodycompany
Czyli przekazywać tablice a potem pętlą to rozdzielać na poszczególne argumenty?
erix
A po co pętlą rozdzielać? Przecież możesz się odwoływać bezpośrednio do elementów tablicy.
Mlodycompany
No też prawda. Dziekować
tehaha
w manualu jest jedno obejście na to:
  1. function some_function($v1='value1',$v2='value1',$v3=null){
  2. $v1=(is_null($v1)?'value1':$v1);
  3. $v2=(is_null($v2)?'value2':$v2);
  4. $v3=(is_null($v3)?'value3':$v3);
  5. echo $v1;
  6. echo $v2;
  7. echo $v3;
  8. }


i tam gdzie chcesz żeby została domyślna wartość dajesz null
thek
Ja czasem robię coś podobnego i jest to wariacja na temat, o którym wspomniał tehaha. Po pierwsze to tak ustawiam argumenty funkcji by były w kolejności możliwego wystąpienia. Pierwsze te pewne i coraz dalej te rzadsze. Od razu też ustawiam wartości defaultowe jeśli mogę. W samej treści sprawdzam też owe parametry. Jeśli napotka wartość - używa jej (oczywiście walidacja musi być przedtem). Jeśli będzie null - daje domyślną. Ale robię tak gdy mam mało parametrów. Jeśli jest ich dużo to lepiej użyć przekazania tablicy argumentów. I tak musisz sprawdzić istnienie określonych, a skracasz sobie wywołanie oraz nieco same sprawdzenie.
erix
Jeśli chodzi o np. wordpressa, to tam używają parametru w stylu QUERY_STRING, parsują na tablicę i merge'ują z podstawowymi.

Ale to nie zmienia faktu, że dać parametr jako tablicę, to najrozsądniejsze wyjście.
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.