..


Sponsede Lenker

Nedleggelser og Anonym funksjoner i PHP 5.3

Artikkel skrevet av Riccardo Brambilla
Side 1 av 2

Per PHP 5.3 er tilgjengelig Anonym funksjoner (lambda-funksjoner) og nedleggelser ... men hva er det?

Anonym funksjoner

Den anonym funksjon (eller lambda) er funksjoner (uten navn) som har som sin hovedoppgave (men ikke bare) skal defineres som tilbakeringing funksjoner.

For de av dere spørre hva er en tilbakeringing funksjon kunne forenkle definisjonen på denne måten: en funksjon sendt som argument til en annen funksjon.

Kanskje er det bedre å se et eksempel, for klarhet la oss se først skrevet i pseudocode, den tilbakering ikke anonym og faktisk forbeholdt PHP:






 / / Tilbakeringing #







 tilbakering funksjon (parameter)

 





 Gjør noe med parameteren







 returnere resultatet prosessering









 / / # Caller







 kalle funksjon (input, tilbakeringing (parameter))



Det er ikke klart det? No problem, la oss se et eksempel bruke biblioteket fungere som signatur er array_walk:

 



 Denne funksjonen gjelder for hvert element i matrisen $ tilbakeringing $ funcname ($ brukerdata utelate noe som er valgfritt).

 

Før versjon 5.3 av PHP for å bruke det vi skal skrive for eksempel:






 $ Array = array ("Rick", "George", "Matthew");







 echoEach funksjon ($ element) {



  



 echo $ element.

 



 "<br />";







 }









 array_walk ($ array, "echoEach");



La oss se hvordan det endres med bruk av lambda:






 $ Array = array ("Rick", "George", "Matthew");







 array_walk ($ array, funksjon ($ element) {



  



 echo $ element.

 



 "<br />";







 });



For begge versjonene, blir resultatet da:






 Rick







 George







 Matthew



Et annet eksempel array_filter funksjon, som godtar et utvalg som input og en tilbakeringingsanmodning signatur:






 array_filter array (array $ inngang [, tilbakeringing $ tilbakeringing])



Vi bruker anonyme funksjoner:






 $ ArrayNum = array (1, 3, 6, 5, 2, 8);







 $ Filtrert = array_filter ($ arrayNum, funksjon ($ element) {



  



 returnere $ element> 2;







 });









 print_r ($ filtrert);



Output:






 Array







 (



  



 [1] => 3



  



 [2] => 6



  



 [3] => 5



  



 [5] => 8







 )



Det er en filtrert array for verdier større enn 2.

Hva får vi? I koden lesbarhet og eleganse.

I samme kategori ...
E-læring
Linux (Course) Linux (Course)
Komplett guide til open-source system. Fra 49 €.
MySQL (Course) MySQL (Course)
Forvaltning av open-source database. Fra € 39.
PHP (Course) PHP (Course)
Full kurs for å lage dynamiske nettsider. Fra 49 €.
Sponsede Lenker