Middle
Τι είναι ένα κλείσιμο σε PHP;
sobes.tech AI
Απάντηση από AI
Αντικείμενο-λειτουργία με τη δυνατότητα να αιχμαλωτίζει μεταβλητές από το πεδίο ορατότητας του δημιουργού της, ακόμα και μετά την ολοκλήρωση της εκτέλεσής του.
<?php
// Κλείσιμο που αιχμαλωτίζει το $factor
$multiplyBy = function ($factor) {
return function ($number) use ($factor) {
return $number * $factor;
};
};
$double = $multiplyBy(2);
$triple = $multiplyBy(3);
echo $double(10); // Έξοδος: 20
echo $triple(10); // Έξοδος: 30
Βασικά χαρακτηριστικά:
- Είναι στιγμιότυπα της κλάσης
Closure. - Μπορούν να κληρονομήσουν μεταβλητές από το ανώτερο πεδίο χρησιμοποιώντας τη λέξη-κλειδί
use. - Οι κληρονομημένες μεταβλητές κληρονομούνται με την τιμή, εκτός αν δηλωθεί ρητά κληρονομία με αναφορά (
use (&$variable)). - Χρησιμοποιούνται συχνά για τη δημιουργία ανώνυμων συναρτήσεων που "θυμούνται" το πλαίσιο δημιουργίας τους.