Sobes.tech
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)).
  • Χρησιμοποιούνται συχνά για τη δημιουργία ανώνυμων συναρτήσεων που "θυμούνται" το πλαίσιο δημιουργίας τους.