Ustawienie argumentu metody jako WYMAGANY., Ewentualnie ustawienie wszystkich jako wymagane inaczej wyjątek |
Ustawienie argumentu metody jako WYMAGANY., Ewentualnie ustawienie wszystkich jako wymagane inaczej wyjątek |
1.11.2016, 13:02:50
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 5.02.2007 Ostrzeżenie: (0%) |
Co prawda rozwiązanie mojego problemu znalazłem ale tylko w PHP 7. Chciałbym jednak żeby kod działał także na wcześniejszych wersjach.
W php7 wykonałem to tak:
Po prostu jeśli $var3 jest pusta to nie jest ona zmienną typu string i kod się nie wykonuje:
Ewentualnie wymyśliłem rozwiązanie mojego problemu dla wcześniejszej wersji php ale bardzo nie dobrze to wygląda:
Tworzona jest po prostu lista podanych argumentów z podanymi wartościami, w pętli sprawdzane są wartości czy nie są NULL, zliczane są wszystkie i porównywane z ilością wymaganych argumentów ( func_num_args() ). Jeśli liczba się nie zgadza przerywana jest metoda ( return false ). Jednak rozwiązanie ma taki minus, że trzeba to wklejać na początku każdej funkcji no i nie wygląda zbyt dobrze z mojego punktu widzenia takie rozwiązanie. Ktoś ma jakieś pomysły na lepsze rozwiązanie tego problemu? Nie mogę nawet tego kodu wrzucić do osobnej funkcji i tylko w każdej wywoływać, bo wtedy func_*_args() nie spełnia swojego zadania. Ten post edytował Grzesiek1 1.11.2016, 13:09:33 |
|
|
1.11.2016, 13:09:24
Post
#2
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
Ustaw domyślną wartość na null
Demo: https://3v4l.org/tu0Fh Wtedy też możesz rzucać wyjątki zamiast "error". Ten post edytował KsaR 1.11.2016, 13:12:50 -------------------- |
|
|
1.11.2016, 13:12:47
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
|
|
|
1.11.2016, 13:22:17
Post
#4
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 5.02.2007 Ostrzeżenie: (0%) |
Ustaw domyślną wartość na null O to chodzi że argument nie może być NULL, jeśli jest NULL chcę aby metoda się właśnie nie wykonywała. E...
No tak to też się sprawdzi, ale to rozwiązanie jest jeszcze mniej wygodne od mojego. Teraz jak mam 10 funkcji i w każdej po 10 argumentów robi się kłopot. Myślałem bardziej o zastosowaniu może jakiegoś wyjątku w przypadku, gdy któryś z argumentów jest pusty. EDIT: Ewentualnie jeszcze w ten sposób można by to rozwiązać ale to jest strasznie zawiłe rozwiązanie
Ten post edytował Grzesiek1 1.11.2016, 14:45:07 |
|
|
1.11.2016, 14:30:11
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
|
|
|
Wersja Lo-Fi | Aktualny czas: 20.09.2024 - 18:02 |