Junior
PHP'de ok işaretli ve anonim fonksiyonler nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Oklar fonksiyonlar, PHP 7.4 ile tanıtılan anonim fonksiyonlar için sözdizimi şekeridir. Basit lambda fonksiyonlarını daha kısa bir şekilde yazmanın bir yolunu sağlarlar.
-
Anonim fonksiyonlar (kapanışlar):
- Birden fazla satır kod içerebilir ve karmaşık mantık barındırabilirler.
- Üst kapsamdan değişkenleri içeri aktarmak için
useanahtar kelimesini kullanırlar. - Daha esnektirler ve karmaşık görevler için uygundur.
-
Ok fonksiyonları:
- Sadece bir ifade içerir ve sonucu otomatik olarak döner.
- Üst kapsam değişkenlerine otomatik erişim sağlarlar (
usegerekmez). - Basit ve tek satırlık işlemler için tasarlanmıştır.
İşte örnekler:
<?php
// Anonim fonksiyon
$greet = function ($name) {
return "Merhaba, " . $name;
};
echo $greet('Dünya') . "\n";
// `use` ile anonim fonksiyon
$message = 'Selam';
$greetWithMsg = function ($name) use ($message) {
return $message . ", " . $name;
};
echo $greetWithMsg('Arkadaş') . "\n";
<?php
// Ok fonksiyonu
$greetArrow = fn ($name) => "Merhaba, " . $name;
echo $greetArrow('Dünya') . "\n";
// Üst kapsam otomatik erişimli ok fonksiyonu
$messageArrow = 'Selam';
$greetArrowWithMsg = fn ($name) => $messageArrow . ", " . $name;
echo $greetArrowWithMsg('Arkadaş') . "\n";
Kısıtlamalardaki farklar:
| Olanak | Anonim fonksiyon | Ok fonksiyonu |
|---|---|---|
| Çok satırlı kod | Evet | Hayır |
return anahtar kelimesi |
Evet (zorunlu) | Hayır (örtülü) |
use anahtar kelimesi |
Evet (içe aktarma için) | Hayır (otomatik) |
| Karmaşık mantık | Evet | Hayır |
Seçim, görevin karmaşıklığına ve sözdizimi tercihlerine bağlıdır. Basit işlemler için, kısa oldukları için ok fonksiyonlarını kullanmak daha uygundur.