Manwe Work 1
Manwe Work
noisiv 1
noisiv
berkmenoo 1
berkmenoo
mavzermete 1
mavzermete
Mt2Hizmet 1
Mt2Hizmet
Hikaye Ekle

PHP - Anonim Fonksiyonlar

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

hq720.jpg


Anonim Fonksiyonlar Nelerdir?

PHP anonim fonksiyonların tanımlanmasına izin verir. Normalde, PHP'de bir fonksiyon tanımladığımızda, genellikle fonksiyonu gerektiğinde çağırmak için kullanılan bir isim veririz. Buna karşılık, anonim bir fonksiyon, tanımlama sırasında herhangi bir ismi belirtilmemiş bir fonksiyondur. Böyle bir fonksiyona kapanış veya lambda fonksiyonu da denir.

Bazen, yalnızca bir kez kullanılmak üzere bir işlev isteyebilirsiniz. Anonim işlevlerin en yaygın kullanımı, satır içi bir geri çağırma işlevi oluşturmaktır.

Anonim fonksiyonlar Closure sınıfı kullanılarak uygulanır. Closure, tanımlandığı ortamın üzerinde kapanan anonim bir fonksiyondur.

Anonim bir işlevi tanımlamanın sözdizimi aşağıdaki gibidir:

$var=function ($arg1, $arg2) { return $val; };

Fonksiyon anahtar sözcüğü ile açılış parantezi arasında bir fonksiyon adı olmadığını ve fonksiyon tanımından sonra bir noktalı virgül olduğunu unutmayın. Bu, anonim fonksiyon tanımlarının ifadeler olduğu anlamına gelir. Bir değişkene atandığında, anonim fonksiyon daha sonra değişkenin adı kullanılarak çağrılabilir.

Örnek

Aşağıdaki örneğe bir göz atın.

PHP:
<?php
   $add = function ($a, $b) {
      return "a:$a b:$b addition: " . $a+$b;
   };
   echo $add(5,10);
?>

Aşağıdaki çıktıyı üretecektir :

a:5 b:10 addition: 15


Geri Arama Olarak Anonim İşlev

Anonim işlevler genellikle geri çağırmalar olarak kullanılır. Geri çağırma işlevleri başka bir işlevin argümanlarından biri olarak kullanılır. Anonim bir işlev anında yürütülür ve dönüş değeri, yerleşik veya kullanıcı tanımlı bir işlev olabilen ana işlevin argümanı olur.

Örnek

Bu örnekte, kullanıcı tanımlı bir karşılaştırma fonksiyonu kullanarak bir diziyi değerlere göre sıralayan yerleşik bir fonksiyon olan usort() fonksiyonunun içinde anonim bir fonksiyon kullanıyoruz.

PHP:
<?php
   $arr = [10,3,70,21,54];
   usort ($arr, function ($x , $y) {
      return $x > $y;
   });
   foreach ($arr as $x){
      echo $x . "\n";
   }
?>

Aşağıdaki çıktıyı üretecektir:


Örnek

Aşağıdaki örnek, bir dizideki ardışık sayılardan sonraki kümülatif toplamı hesaplamak için anonim bir işlev kullanır. Burada, array_walk() işlevini kullanırız. Bu işlev, dizideki her bir öğeye kullanıcı tanımlı bir işlev uygular.

PHP:
<?php
   $arr=array(1,2,3,4,5);
   array_walk($arr, function($n){
      $s=0;
      for($i=1;$i<=$n;$i++){
         $s+=$i;
      }
      echo "Number: $n Sum: $s". PHP_EOL;
   });
?>

Aşağıdaki çıktıyı üretecektir:

Number: 1 Sum: 1
Number: 2 Sum: 3
Number: 3 Sum: 6
Number: 4 Sum: 10
Number: 5 Sum: 15

Anonim İşlev (Kapanış Olarak)

Kapatma da " use " anahtar sözcüğü yardımıyla kapsamı dışındaki değişkenlere erişebilen anonim bir fonksiyondur.

Örnek

Aşağıdaki örneğe bir göz atın.

PHP:
<?php
   $maxmarks=300;
   $percent=function ($marks) use ($maxmarks) {
      return $marks*100/$maxmarks;
   };
   $m = 250;
   echo "Marks = $m Percentage = ". $percent($m);
?>

Aşağıdaki çıktıyı üretecektir:

Marks = 250 Percentage = 83.333333333333
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst