![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%)
|
Witam. Czy jest mozliwosc takiego zadeklarowania funkcji anonimowej aby wymusic na programiscie zadeklarowanie 2 parametrów?
załózmy ze mam taki kod
chcialbym wymusic zeby kazdy kto uzyje funkcji_ktora_uzywa_lambda, musial w funkcji anonimowej zadeklarowac te 2 parametry. głównie chodzi o to zeby uniknąć problemów ze zrobieniem closure ktory nie da parametrów po kilku miesiacach, jak zapomne jak kod działał a bede chcial korzystac z okreslonej funkcjonalnosci którą uzupelnia sie domknieciami. |
|
|
|
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk |
Nie. Bo dlaczego? Może obsłuży argumenty w kodzie funkcji? func_get_arg
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%)
|
Nie. Bo dlaczego? Może obsłuży argumenty w kodzie funkcji? func_get_arg musiala by byc uzyta wewnatrz closure aby odniesc efekt, wiec programista musialby pamietac jakie parametry trzeba bylo dopisac do closure w kolejnym wywolaniu funkcji aby zadzialala. Jesli programista to pamieta to rownie dobrze moze wstawic od razu dobre parametry w deklaracji closure. czyli jedyną mozliwoscia jest PHPDoc? |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Czy nie lepiej będzie skorzystać z "normalnego" interfejsu definiującego jedną publiczną metodę z określonymi parametrami? PHP niestety nie pozwala tworzyć anonimowych/lokalnych instancji klas/interfejsów, więc nieco problematyczne, jednak jednocześnie będzie spełniało Twoje kryteria.
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 2 Dołączył: 18.11.2009 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%)
|
Czy nie lepiej będzie skorzystać z "normalnego" interfejsu definiującego jedną publiczną metodę z określonymi parametrami? PHP niestety nie pozwala tworzyć anonimowych/lokalnych instancji klas/interfejsów, więc nieco problematyczne, jednak jednocześnie będzie spełniało Twoje kryteria. closure sa duzo wygodniejsze, nie zasmiecaja kodu klasami ktore zostana uzyte tylko raz, no i trzymają ten kod tam gdzie jest potrzebny, a oddzielna klasa wędruje do innego pliku albo w inne miejsce niekoniecznie blisko jego jedynego uzycia. ten przyklad z reflection class nie jest zły, ciekawe jak z jego wydajnoscią. |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 19:08 |