![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zablokowani Postów: 6 Pomógł: 0 Dołączył: 18.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich!
Stworzyłem klasę (nazwijmy ją "foo") i umieściłem w niej 8 stałych o różnych wartościach. Potrzebne są one, aby poprawnie działała funkcja (powiedzmy "bar"):
Funkcja w zależności od podanych stałych ma przeszukiwać różne tablice w poszukiwaniu odpowiedniego klucza. Problem zaczyna się w momencie, gdy chcę przeszukać wiele tablic jednym poleceniem:
Problem tkwi w tym, że chciałbym, aby funkcja w przypadku podania jednej stałej w argumencie, zwracała pojedynczą zmienną, a w przypadku podania kilku, tablicę wyników. Do tego muszę znaleźć sposób na rozpoznanie, czy została podana jedna, czy wiele stałych. Czy znacie jakiś sposób, aby to sprawdzić? Z góry dziękuję za wszystkie odpowiedzi. Ten post edytował VRK 5.03.2011, 15:40:04 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Przede wszystkim... nie powinieneś robić czegoś takiego. Takie "triki" strasznie utrudniają późniejsza pracę z kodem, bo zaczyna on działać nieprzewidywanie. Lepiej utwórz sobie drugą metodę, która zwróci tylko jeden element:
Interfejs klasy / obiektu jest wtedy znacznie czytelniejszy i prostszy w zrozumieniu (pomimo dodania nowej metody). Jeżeli jednak bardzo chciałbyś zrobić to po swojemu to wystarczy sprawdzić czy przekazana wartość ($type) to któraś z konkretnych zadeklarowanych stałych - jeżeli tak, zwracasz jedno, jeżeli nie to oznaka, że masz do czynienia z wieloma elementami. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 02:27 |