![]() |
![]() |
![]()
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: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#3
|
|
Grupa: Zablokowani Postów: 6 Pomógł: 0 Dołączył: 18.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
@fifi209
Nie, tak to nie działa ![]() U mnie działa to tak, że kilka stałych jest podawanych w jednym argumencie ![]() Gdyby dało się to rozwiązać w tak prosty sposób, to bym nie tworzył tematu ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#5
|
|
Grupa: Zablokowani Postów: 6 Pomógł: 0 Dołączył: 18.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
@fifi209
Zobaczyłeś przynajmniej jak wygląda przykład?
"|" to "OR" w operacjach bitowych. Jak można zauważyć, kolejne stałe mają wartości potęg liczby 2. Dzięki temu mogę na nich przeprowadzać operacje bitowe i tworzyć całe wyrażenia określające, co ma być przeszukiwane. |
|
|
![]()
Post
#6
|
|
![]() 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. |
|
|
![]()
Post
#7
|
|
Grupa: Zablokowani Postów: 6 Pomógł: 0 Dołączył: 18.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
@Crozin
Dzięki. Działa inaczej niż chciałem, ale działa dobrze ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 262 Pomógł: 39 Dołączył: 12.04.2004 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzić możesz logarytmem binarnym. Jeśli zwróci wartość całkowitą, to podana została tylko jedna stała. Nie zapomnij o szczególnym przypadku dla zera.
-------------------- rm -rf /*
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Złośliwie dodam, że tak właśnie wygląda kod pisany przez matematyków
![]() -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Złośliwie dodam, że tak właśnie wygląda kod pisany przez matematyków Co niby mają do tego matematycy? Jaki to w ogóle ma związek z matmą?
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 06:49 |