![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 22 Dołączył: 6.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Chciałem wam przedstawić dość ciekawą klasę, z mojego punktu widzenia, która może rozwiązać problem przekazywania argumentów poprzez konstruktor. Jeżeli nie jesteśmy pewni ile tych argumentów będziemy potrzebować, a nie chcemy ingerować za każdym razem w samom klasę, to rozwiązanie na pewno się przyda.
Special Arguments v1.0 http://www.phpclasses.org/browse/file/49642.html Co o klasie sądzicie. |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Ja sadze, ze musze sie wpierw zalogowac by pobrac stamtad klase.... nie mozna po ludzku jej wrzucic gdzies by bez problemow ją zobaczyc?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Jest taka długa, że nie wiem czy się zmieści (IMG:style_emoticons/default/wink.gif) , ale spróbuję:
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
To naprawde ta "klasa" (IMG:style_emoticons/default/questionmark.gif)
1) Tu nie ma co oceniac ani nic czego sie nie wie.... rownie dobrze mogles napisac, ze 2+2 = 4 i jest to bardzo ciekawe 2) Przeciez tu jest dostosowane do jakiegos konkretnego twoje celu (person, car) i ma sie nijak do ogolnego korzystania.. 1+2 = 3 przenosze ps: no i jeszcze blad ba bledzie.... w ogole nie zajrzales do manuala co zwracaja funkcje func_get_args() and func_num_args() oraz czy w ogole przyjmuja jakies argumenty :/ przenosze na przedszkole
Powód edycji: [nospor]:
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jeżeli nie jesteśmy pewni ile tych argumentów będziemy potrzebować Jak to nie jesteśmy pewni? Projektujesz klasy na chybił-trafił? Jaki jest tego cel? |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Jakoś to działa, ale czy tak jak oczekiwałeś?
1. Konstruktor nie powinien niczego zwracać. 2. Przy każdym przebiegu pętli for zerujesz $tabarg. 3. To co napisali poprzednicy: brak umiejętności korzystania z func_*_args(), brak jakiegokolwiek sensownego zastosowania. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 22 Dołączył: 6.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jak to nie jesteśmy pewni? Projektujesz klasy na chybił-trafił? Jaki jest tego cel? Potrzebujesz na stronie wywołać np. samochód z 5 osobami w środku a na drugiej z 20, bo to mini bus. To po co zmieniać za każdym razem konstruktor w klasie jak można użyć takiego rozwiązania. To tylko przykład. Szkoda że takie rozwiązania są przenoszone na przeczkole, ale ok, zapamiętam Cytat Konstruktor nie powinien niczego zwracać. Dzięki nie zauważyłem tego returna w konstruktorze Ten post edytował ber32 11.12.2013, 13:26:15 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Potrzebujesz na stronie wywołać np. samochód z 5 osobami w środku a na drugiej z 20, bo to mini bus. To po co zmieniać za każdym razem konstruktor w klasie jak można użyć takiego rozwiązania. To tylko przykład. Konstruktor przyjmuje tablicę pasażerów - po sprawie. Co jeśli chciałbym w konstruktorze przekazać pasażerów i np. informację o aktualnym poziomie paliwa? Mam zrobić:
? Szkoda że takie rozwiązania są przenoszone na przeczkole, ale ok, zapamiętam Jaki urażony (IMG:style_emoticons/default/smile.gif) To, że Twoim zdaniem jest to przydatny gadżet nie oznacza, że tak faktycznie jest. |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Szkoda że takie rozwiązania są przenoszone na przeczkole, ale ok, zapamiętam No ty raczysz zartowac.... czytales w ogole co napisano?? Przeciez tu jest cala masa bledow to raz, a dwa, ze to nie jest nic ciekawego, a ogolne znany fakt, z ktorego notabene nie umiesz korzystac. Dziala ci tylko i wylacznie fuksem...
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 25 Dołączył: 28.09.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Cytat Dzięki nie zauważyłem tego returna w konstruktorze no tyle linijek ze mozna bylo pominac (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 22 Dołączył: 6.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Konstruktor przyjmuje tablicę pasażerów - po sprawie. Co jeśli chciałbym w konstruktorze przekazać pasażerów i np. informację o aktualnym poziomie paliwa? Mam zrobić: new special_arguments('mietek', 'heniek', 50); Robisz kontyner i z niego przekazujesz do odpowiednich metod |
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Pokaż proszę na jakimś konkretnym przykładzie, bo może po prostu nie łapiemy o co chodzi. Jakie masz dane wejściowe, jaki kod PHP i co masz na wyjściu.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 22 Dołączył: 6.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Pokaż proszę na jakimś konkretnym przykładzie, bo może po prostu nie łapiemy o co chodzi. ha ha (IMG:style_emoticons/default/oneeyedsmiley02.png) |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
ha ha (IMG:style_emoticons/default/oneeyedsmiley02.png) Faktycznie fascynujący przykład. Chyba wiem, co chciałeś osiągnąć, ale jest na to lepszy sposób. Zamiast używać func_*_args lepiej zastosować tablice, w której będziesz przekazywał parametry, a kluczami będą nazwy tych parametrów. W konstruktorze tylko sprawdzasz czy istnieje dany parametr w tablicy, jaką ma wartość i w zależności od tego podejmujesz odpowiednią akcje. Tyle. Nie ma sensu kombinować. Jeśli chodzi Ci natomiast o zastosowanie nieokreślonej liczby parametrów jak np przy var_dump, to raczej rzadko się to stosuje bo są lepsze i wygodniejsze metody. Oczywiście, są sytuacje gdzie nie ma wyjścia i trzeba użyć func_*_args, ale jak wspomniałem wcześniej są one rzadkością. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 04:38 |