Junior
Τι είναι οι βελάκια και οι ανώνυμες συναρτήσεις στο PHP;
sobes.tech AI
Απάντηση από AI
Οι βέλτιστες λειτουργίες είναι μια συντακτική ζάχαρη για τις ανώνυμες λειτουργίες, που εισήχθησαν στο PHP 7.4. Προσφέρουν έναν πιο σύντομο τρόπο γραφής απλών συναρτήσεων lambda.
-
Ανώνυμες λειτουργίες (κλεισίματα):
- Μπορούν να περιλαμβάνουν περισσότερες από μία γραμμές κώδικα και να περιέχουν σύνθετη λογική.
- Χρησιμοποιούν τη λέξη-κλειδί
useγια την εισαγωγή μεταβλητών από το ανώτερο πεδίο ορατότητας. - Είναι πιο ευέλικτες και κατάλληλες για σύνθετες εργασίες.
-
Βέλη λειτουργίες:
- Περιέχουν μόνο μια έκφραση, του οποίου το αποτέλεσμα επιστρέφεται αυθαίρετα.
- Έχουν αυτόματη πρόσβαση σε μεταβλητές από το ανώτερο πεδίο ορατότητας (δεν απαιτούν
use). - Προορίζονται για απλές, μονογραμμικές λειτουργίες.
Ακολουθούν παραδείγματα:
<?php
// Ανώνυμη λειτουργία
$greet = function ($name) {
return "Γειά σου, " . $name;
};
echo $greet('Κόσμος') . "\n";
// Ανώνυμη λειτουργία με use
$message = 'Χαιρετισμοί';
$greetWithMsg = function ($name) use ($message) {
return $message . ", " . $name;
};
echo $greetWithMsg('Φίλος') . "\n";
<?php
// Βέλος λειτουργία
$greetArrow = fn ($name) => "Γειά σου, " . $name;
echo $greetArrow('Κόσμος') . "\n";
// Βέλος λειτουργία με αυτόματη πρόσβαση στο ανώτερο πεδίο
$messageArrow = 'Χαιρετισμοί';
$greetArrowWithMsg = fn ($name) => $messageArrow . ", " . $name;
echo $greetArrowWithMsg('Φίλος') . "\n";
Διαφορές στους περιορισμούς:
| Δυνατότητα | Ανώνυμη λειτουργία | Βέλος λειτουργία |
|---|---|---|
| Πολυγραμμικός κώδικας | Ναι | Όχι |
Λέξη-κλειδί return |
Ναι (υποχρεωτικό) | Όχι (αυθαίρετα) |
Λέξη-κλειδί use |
Ναι (για εισαγωγή) | Όχι (αυτόματο) |
| Πολύπλοκη λογική | Ναι | Όχι |
Η επιλογή μεταξύ τους εξαρτάται από τη δυσκολία της εργασίας και τις προτιμήσεις στη σύνταξη. Για απλές ενέργειες, είναι πιο βολικό να χρησιμοποιείτε βέλη λειτουργίες λόγω της συνοπτικότητάς τους.