ziomuś
16.07.2012, 13:19:05
Jak w temacie, jak zrobić aby np. podanie ostatniego argumentu w funkcji było opcjonalne i jego niepodanie nie zwracało ostrzezenia przy wyswietlaniu bledow? z góry dziekuje za odpowiedzi
piotrex41
16.07.2012, 13:21:40
Po prostu sam podajesz domyślną wartość, a opcjonalnie można nadpisać domyślną wartość przez podanie innej wartości.
Kod
function asd($a, $b, $c = 'opcjonalne')
{
//funkcja
}
thek
16.07.2012, 16:48:19
To jest dobre podejście, ale ja osobiście preferuję inne. Wszystkie obowiązkowe daję normalnie, ale opcjonalne przesyłam jako tablicę. Nie mam więc makabrycznej ilości parametrów. Albo pusta tablica gdy brak opcjonalnych, albo z określonymi kluczami. Wiem, że to przy podpowiadaniu w IDE nie jest dobre, ale mając czasem masę parametrów opcjonalnych średnio fajnie to wygląda. Prościej na pewno je ustawiać gdy nie znamy miejsca na liście parametrów, no i poza tym nie zastanawiamy się jakie wartości wstawiamy we wszystkie parametry między ostatnim wymaganym a tym opcjonalnym i czy jest jakaś wartość neutralna, która jest tożsama z domyślną, bądź uznawana za brak podania tego parametru (w tej roli wstawia się często NULL, ale nie jest to reguła). Posłanie wszystkich opcjonalnych jako tablica jest o wiele mniej kłopotliwe i wiąże jedynie z ewentualnym sprawdzeniem wystąpienia określonego klucza.