![]() |
![]() ![]() |
![]() |
![]()
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. -------------------- "The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time."
Tom Cargill, Bell Labs |
|
|
![]()
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? -------------------- "The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time."
Tom Cargill, Bell Labs |
|
|
![]()
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ą. -------------------- "The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time."
Tom Cargill, Bell Labs |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 19:33 |