
Προγραμματισμός με PHP που μπορεί, σε κάθε περίσταση, που είχατε να κάνετε χρήση της ανώνυμες συναρτήσεις. Ανώνυμες λειτουργίες είναι λειτουργίες που έχουν δηλωθεί στο το δικό ροή του κώδικα που αναπτύσσονται και υποθέτουν ότι είναι λειτουργίες που χρησιμοποιούμε μόνο σε αυτό το μέρος, Ως εκ τούτου, θεωρούμε ότι δεν τους χώρια και το επαναχρησιμοποίηση.
Κανονικά, Οι συναρτήσεις αυτές χρησιμοποιούνται ως ρεσεψιόν του επιστροφές κλήσης άλλες λειτουργίες ή Εκδηλώσεις, και θεραπεία είναι κωδικοποιημένα σε τους ότι μια τέτοια επιστροφή κλήσης o εκδήλωση Πρέπει να έχετε. Με αυτόν τον τρόπο, Μπορείτε να κάνετε μια ανάπτυξη ή Προγραμματισμός εκδηλώσεων, πιο χαρακτηριστική από άλλες γλώσσες ως JavaScript.
Αν ποτέ σας έχουν προγραμματιστεί σε Javascript, Όταν κάνετε, για παράδειγμα, μια κλήση στη συνάρτηση setTimeout, είναι μία από τις παραμέτρους που έχει ένα επιστροφή κλήσης η λειτουργία που θέλετε να εκτελείται όταν παρουσιάζεται το εκδήλωση.
1 | setTimeout( function() { console.log( 'test' ); }, 3000 ); |
Το ίδιο, σε PHP Υπάρχουν στιγμές που είναι κατάλληλες για χρήση επιστροφές κλήσης ως παράμετροι συναρτήσεων. Στη συνέχεια μπορούμε να δούμε την πιθανή χρήση μια ανώνυμη συνάρτηση σε PHP. Ας υποθέσουμε ότι έχουμε μια λειτουργία στην οποία μία από τις παραμέτρους είναι ένα επιστροφή κλήσης:
1 | nombre_funcion( $parametro1, $parametro2, $callback = '' ); |
στην παράμετρο $επιστροφή κλήσης, Θα μπορούσαμε να πάρουμε άμεσα το το όνομα της συνάρτησης Θέλω να τρέξει και ότι έχουμε προηγουμένως ορίζεται, είτε, άμεσα ένα ανώνυμη συνάρτηση. Θα δούμε τις δύο μορφές:
- Καλώντας ένα προηγουμένως καθορισμένη λειτουργία:
1 2 3 4 5 | function mi_funcion() { //código de mi_funcion } nombre_función ( $parametro1, $parametro2, 'mi_funcion' ); |
- Μέσα από την αξιοποίηση του ένα ανώνυμη συνάρτηση:
1 2 3 4 5 | nombre_funcion( $parametro1, $parametro2, function() { //código de la función anónima } ); |
Πώς να περάσετε παραμέτρους ή μεταβλητές για ανώνυμες συναρτήσεις
Όταν χρησιμοποιούμε ανώνυμες συναρτήσεις, μέσα στον κώδικα από αυτές, Δεν έχουμε πρόσβαση να το μεταβλητή ή τα αντικείμενα που έχετε ορίσει προηγουμένως για την η ροή του κώδικα, Έτσι, Εάν χρειάζεται να αναφερθώ σε ορισμένα από αυτά, είτε Έχουμε καταστήσει παγκόσμια, είτε δίνουμε πρόσβαση να τους, όπως θα δούμε παρακάτω:
Ας υποθέσουμε ότι το προηγούμενο παράδειγμα με κάποια προηγούμενο κώδικα προστεθεί:
1 2 3 4 5 6 7 | $aux = 'Esto es una prueba'; nombre_funcion( $parametro1, $parametro2, function() { //Desde aquí no tengo acceso a la variable $aux } ); |
Από μέσα η ανώνυμη συνάρτηση Δεν έχουμε πρόσβαση η μεταβλητή $AUX προηγουμένως προσδιοριστεί. Για να χρησιμοποιήσετε αυτήν τη μεταβλητή, Έχουμε να κάνουμε με τον ακόλουθο τρόπο:
1 2 3 4 5 6 7 | $aux = 'Esto es una prueba'; nombre_funcion( $parametro1, $parametro2, function() use ( $aux ) { //Ahora sí que tenemos acceso a la variable $aux } ); |
Προσθήκη, Μετά από το Αναγνωριστικό της λειτουργίας λειτουργία(), η λέξη χρήση ακολούθησε, παρενθέσεις, η μεταβλητή που θέλουμε να έχουν πρόσβαση, Είμαστε επιτρέποντας ότι από την στο εσωτερικό η ανώνυμη συνάρτηση Έχουμε πρόσβαση η μεταβλητή, Τι ΗΠΑ θα αποτρέψει χρειάζεται να δηλώνετε καθολικές μεταβλητές και επακόλουθη χρήση δηλώσεις μέσα στη συνάρτηση.
