Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Closures (wyrazenia lambda w PHP), pytanie, czy mozna zadeklarowac parametry
Orzeszekk
post
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
  1. function funkcja_ktora_uzywa_lambda(Closure $lambda)
  2. {
  3. $i=1;
  4. $j=2;
  5. return $lambda($i, $j);
  6. }
  7. //to uzycie funkcji powyzszej
  8. funkcja_ktora_uzywa_lambda(new function($i,$j) {
  9. return $i+$j;
  10. });


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





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.
Go to the top of the page
+Quote Post
Orzeszekk
post
Post #3





Grupa: Zarejestrowani
Postów: 260
Pomógł: 14
Dołączył: 8.09.2011

Ostrzeżenie: (0%)
-----


Cytat(Crozin @ 18.02.2012, 21:42:29 ) *
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ą.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 08:34