PHP Anonim Fonksiyonlar

Anonim fonksiyonlar isim belirtmeksizin oluşturulabilen fonksiyonlardır. Çoğunlukla callback (geriçağırım fonksiyonu) olarak fonksiyon parametrelerinde kullanılırsa da kullanımı bununla sınırlı değildir.

Lambda nedir?


Bir Lambda, bir değişkene atanabilen veya başka bir fonksiyona argüman olarak geçirilebilen isimsiz bir fonksiyondur. Javascript veya Ruby gibi diğer programlama dillerine aşina iseniz, isimsiz fonksiyonları çok iyi bileceksiniz.

Anonim fonksiyonlar


Anonim bir fonksiyon, sadece adı olmayan bir fonksiyondur.

Bir PHP geliştiricisi olarak, normal bir fonksiyonun ne olduğunu ve nasıl tanımlandığını biliyor olmalısınız. Bunun gibi düzenli bir PHP fonksiyonu oluşturabiliriz.


function Selam(){

//Kodlar...

}

Düzenli bir fonksiyon tanımladığınızda ona bir ad verirsiniz. Temel fark isminden de anlaşılacağı üzere Anonim fonksiyonlar olmasıdır, yani adı yoktur. Anonim fonksiyon nasıl tanımlanır:


function ($parametre1, $parametre2){

//Kodlar...

}

Anonim fonksiyonlar normal fonksiyonlara benzer, çünkü çağrıldığında çalıştırılan kod bloğunu içerirler. Ayrıca argümanları kabul edebilir ve değerleri döndürürler. Anonim fonksiyonları değişkene atayarak kullanılır.


$Selam = function ($parametre1, $parametre2){

//Kodlar...

};

Anonim fonksiyon ile normal fonksiyon tanımı arasında iki ince önemli fark vardır:

Yukarıdaki kod tamamen geçerli olsa da, çok kullanışlı değildir. Anonim fonksiyonun adı olmadığından kodunuzda başka bir yerde çalıştıramazsınız.

Bununla birlikte, isimsiz bir fonksiyon bir ifade veya bir dize gibi bir ifade olduğundan, onunla çeşitli kullanışlı kodlar yazabilirsiniz. Örnek olarak şunları yapabilirsiniz:

Bir dizinin içinde birkaç fonksiyonu bile saklayabilirsiniz, şunun gibi: 3 isimsiz fonksiyonu bir dizide saklayın:


<?php

$dizi =[

  function () {
    echo "Birinci fonksiyon";
  },

  function () {
    echo "İkinci fonksiyon";
  },

  function () {
    echo "Üçüncü fonksiyon";
  }

];

$dizi[1]();

?>

Yukarıda örnekte görüldüğü üzere $dizi[1](); diziyi fonksiyon gibi çağırmalısınız.

Yukardaki örnekte rastgele fonksiyon çağırmak için şöyle bir değişiklik yapın.


// Rastgele bir fonksiyon çağırın

$x = rand(0, 2);

$dizi[$x]();


Anonim fonksiyonu callback (geri çağırma olarak kullanma)


Anonim fonksiyonu yaygın bir kullanımı, basit bir satır içi callback fonksiyonu oluşturmaktır. callback (Geri çağırma) fonksiyonu, başka bir fonksiyona argüman olarak geçirebileceğiniz bir fonksiyondur. Geri çağırma fonksiyona eriştiğinizde, Çeşitli yapılacak işlemler gerektiğinde onu kullanabiliriz.

Birçok PHP yerleşik fonksiyonu geri çağırmayı kabul eder veya geri çağırma fonksiyonu kabul eden kendi fonksiyonunuzu oluşturabilirsiniz.

Yerleşik fonksiyonlardan bazılarını görelim ve Anonim fonksiyonları anlayalım.

Fonksiyonun her elemanında callback fonksiyonunu çalıştırmak için array_map() fonksiyonunu kullanalım.

array_map() fonksiyonu bir callback fonksiyonu ve bir diziyi argüman olarak kabul eder. Dizinin her elemanı boyunca yinelenir ve callback fonksiyonu her bir öğeye uygular. callback, dizi değerini değiştirecek bir değer döndürmesi ve array_map'ın değiştirilen diziyi döndürmesi gerekir.

NOT: array_map(), kendisine ilettiğiniz dizinin bir kopyası üzerinde çalışır. Orijinal diziye dokunulmadan kalır.

Önce örneği Callback kullanmadan normal yoldan yapalım.


// callback fonksiyonu olmadan

$arr = [1,2,3,4,5];

foreach ($arr as $value) {

$dizi[] = $value * $value;

}

echo "<pre>";
print_r ($dizi);
echo "</pre>"	

ÇIKTI:

Array
(
    [0] => 1
    [1] => 4
    [2] => 9
    [3] => 16
    [4] => 25
)	

Aynı işlemi callback fonksiyonu ile array_map() fonksiyonu kullanarak yapalım.


<?php

// Anonim fonksiyonu callback kullanma

$arr = [1,2,3,4,5];

$dizi = array_map(function($num){

return $num*$num;

}, $arr);

echo "<pre>";
print_r($dizi);
echo "<br>";
print_r($arr);
echo "</pre>";

?>

ÇIKTI:

Array
(
    [0] => 1
    [1] => 4
    [2] => 9
    [3] => 16
    [4] => 25
)

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Kendiliğinden çalışan anonim işlevler:



// For PHP 7.x
(function () {
    echo "Hello world!";
})();

// For PHP 5.x
call_user_func(function () {
    echo "Hello world!";
});


Bir bağımsız değişkeni kendiliğinden çalışan anonim işlevlere geçirmek:


// For PHP 7.x
(function ($name) {
    echo "Hello $name!";
})('Ahmet');

// For PHP 5.x
call_user_func(function ($name) {
    echo "Hello $name!";
}, 'Ahmet');

Lütfen konu haricinde soru sormayın cevaplanmayacaktır. Yorumunuz onaylandıktan sonra yayınlacaktır.

9323

KATEGORİ
  • HTML
  • CSS
  • PHP
  • JQUERY
  • PHOTOSHOP
  • JavaScript
  • Web Dünyası
  • Linux
  • MİTHRİL FRAMEWORK
POPÜLER MAKALE
  • HTML LİNK(Bağlantı)EKLEME - LİNK VERME
  • HTML YAZI VE RESİM ORTALAMA
  • HTML RESME LİNK VERME
  • HTML DİV ve SPAN NEDİR?
  • HTML FORM OLUŞTURMA
  • HTML KAYAN RESİM VE Marguee KULLANIMI
  • HTML RESİM EKLEME
  • HTML ARKAPLANA MÜZİK EKLEME
  • CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
  • PHP ceil()-floor()-round() YUVARLAMA FONKSİYONU
ETİKET
WEBCEBİR © 2013 Tüm hakları saklıdır.