Sobes.tech
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 use anahtar 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 (use gerekmez).
    • 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.