Membuat Anonymous Function di PHP

Anonymous Function atau dikenal juga dengan sebutan Lambda merupakan fungsi yang dibuat tanpa nama. Anonymous Function sering digunakan sebagai callback untuk fungsi lain. Fitur yang dapat dilakukan oleh anonymous function berbeda dengan fungsi biasa. Dimana anonymous function harus disimpan kedalam sebuah variable dan dapat dipanggil menggunakan variable itu sendiri. Lalu bagaimana cara membuatnya?

Membuat Anonymous Function

<?php

$hello = function(){
    return 'hello world';
};

echo $hello();

Diatas saya membuat sebuah variable bernama $hello, kemudian saya mengisi value-nya dengan sebuah anonymous function. Perhatikan bahwa fungsi dibuat tanpa nama, jika fungsi diberi nama akan error.

Di baris keempat saya membuat fungsi tersebut agar mengembalikan string berisi hello world. Perhatikan juga bahwa setelah kurung kurawala penutup blok fungsi juga harus ditutup dengan semicolon.

Setelah itu saya memanggil fungsi tersebut menggunakan nama dari variable yang menampungnya. Jika anda menjalankan skrip diatas, akan tampil string helo world di console atau web browser anda.

Menggunakan Variable dari Luar Function

Untuk dapat menggunakan variable yang berada diluar scope anonymous function ada beberapa cara. Yang pertama bisa menggunakannya sebagai argumen, cara kedua anda bisa menggunakannya sebagai global variable di dalam function. Namun jika anda mengubah value variable dari dalam scope function tersebut akan berdampak pada variable yang ada diluar. Cara ketiga adalah menggunakan keyword use.

<?php

$worldv = 'world';
$hello = function() use ($worldv){
    return "hello $worldv";
};

echo $hello();

Dalam kode diatas, saya memanggil variable $worldv dari dalam fungsi. Perhatikan di baris 4 saya menggunakan keyword use($worldv).

Lalu bagaimana jika yang ingin dipakai lebih dari satu variable? Anda tinggal memisahkannya dengan koma didalam argumen use().

<?php

$worldv = 'world';
$isekaiv = 'isekai';
$hello = function() use ($worldv, $isekaiv){
    return "hello $worldv \n hello $isekaiv";
};

echo $hello();

Anonymous Function Sebagai Argumen

Anonymous function yang baru saja kita pelajari dapat digunakan sebagai argumen dari sebuah fungsi. Biasanya digunakan sebagai sebuah callback.

<?php
  
function sayhello($to, $action){
    $action($to);
}

sayhello('Elf', function($siapa){
    echo "hello $siapa";
});

Dalam kode diatas saya menggunakan anonymous function sebagai argumen untuk fungsi sayhello. Pertama saya memanggil fungsi sayhello() yang menerima inputan dua buah argumen. Argumen pertama yang ditampung oleh variable $to berisi sebuah nama, dan argumen kedua ditampung oleh variable $action berisi sebuah fungsi (anonymous function) yang akan mengolah string dari argumen pertama.

Saat pemanggilan fungsi sayhello(), argumen pertama sayhello akan ditampung oleh anonymous function dan diterima oleh variable $siapa untuk kemudian diolah sesuai fungsi anonymous function itu sendiri. Dalam contoh diatas, string yang ditampung akan ditampilkan ke layar menggunakan keyword echo;

Itu saja, semoga bermanfa’at;

Diterbitkan oleh ipansubastian

Seorang rakyat kecil yang tertarik terhadap IT, Software Development dan dunia Open Source.

Tinggalkan komentar

Rancang situs seperti ini dengan WordPress.com
Ayo mulai