Ok İşlevleri
   
    Ok işlevleri PHP 7.4'te anonim
    işlevler için daha kısa bir sözdizimi olarak tanıtılmıştır.
   
   
    Anonim işlevler ve ok işlevlerinin ikisi de
    Closure
    sınıfı kullanılarak gerçeklenmiştir.
   
   
    Ok işlevlerinin temel biçimi:
    fn (bağımsız değişkenler) => ifade
   
   
    Ok işlevleri, üst etki alanındaki değişkenleri daima otomatik
    kullanması dışında anonim
    işlevlerin desteklediği özelliklerin tümünü destekler.
   
   
    İfadede kullanılan bir değişken üst etki alanında tanımlandığında,
    örtük olarak değeriyle aktarılır. Aşağıdaki örnekte
    $fn1 ve $fn2 işlevleri aynı
    şekilde davranır.
   
   
    
     Örnek 1 - Ok işlevleri otomatik olarak değişkenleri üst etki alanından
    daima değerleriyle alır
     
<?php
$y = 1;
$fn1 = fn($x) => $x + $y;
// $y bağımsız değişkenini değeriyle kullanmaya eşdeğerdir:
$fn2 = function ($x) use ($y) {
    return $x + $y;
};
var_export($fn1(3));
?>
      
     
Yukarıdaki örneğin çıktısı:
 
   
   
    Aşağıdaki örnek, ok işlevleri iç içe kullanılsa da çalışır:
   
   
    
     Örnek 2 - Ok işlevleri otomatik olarak değişkenleri iç içe olsalar bile
       üst etki alanından daima değerleriyle alır
     
<?php
$z = 1;
$fn = fn($x) => fn($y) => $x * $y + $z;
// 51 çıktılanır
var_export($fn(5)(10));
?>
      
     
   
   
    Anonim işlevlere benzer olarak, ok işlevleri sözdizimi de, bağımsız değişken ve
    dönüş türleri dahil, öntanımlı değerler, değişken sayıda bağımsız değişkenler,
    gönderimli aktarım ve dönüşler gibi rasgele işlev imzalarına da izin
    verir. Aşağıdaki ok işlevlerinin tamamı geçerli örneklerdir:
   
   
    
     Örnek 3 - Ok işlevi örnekleri
     
<?php
fn(array $x) => $x;
static fn($x): int => $x;
fn($x = 42) => $x;
fn(&$x) => $x;
fn&($x) => $x;
fn($x, ...$rest) => $rest;
?>
      
     
   
   
    Ok işlevleri değişken bağlamını değeriyle kullanır. Bu kabaca, ok işlevi
    içinde kullanılan her $x değişkeni için bir
    use($x) çalıştırmaya eşdeğerdir.
    Değişken bağlamını değeriyle kullanmaktan kasıt, dış etki alanındaki
    herhangi bir değerin değiştirilmesinin mümkün olmayacağıdır.
    Değişken bağlamını gönderimiyle kullanmak için
    anonim işlevler
    kullanılabilir.
   
   
    
     Örnek 4 - Dış etki alanındaki değerler ok işlevleri kullanılarak
      değiştirilemez
     
<?php
$x = 1;
$fn = fn() => $x++; // Etkisiz
$fn();
var_export($x);  // 1 çıktılanır
?>