Penggunaan fungsi ANONYME pada PHP

Penggunaan fungsi ANONYME pada PHP

Assalamualaikum.. Kali ini kita akan belajar tentang Anonymous Function / Lambda & Closure, hah Anonymous? Hmm apa sih itu Anonymous itu? Hacker? Nggak lah kita nggak akan bahas tentang hacker, hehe :D.

Kembali ke topik awal, yaitu anonymous function / lambda & closure, anonymous function / lambda ini adalah fungsi yang dapat kita gunakan tanpa menuliskan nama fungsinya, emangnya bisa? Ya tentu bisa, hehe.

Coba perhatikan contoh syntax berikut ini:

~/SinauPHP/code/anonymous-function.php

Pada kasus diatas kita membuat 2 fungsi, yaitu fungsi pertama nama() yang didalam fungsi tersebut dapat menampilkan nama yang diinginkan dan fungsi kedua bisa() yang menampilkan kata-kata motivasi. Fungsi bisa() menerima parameter sebuah string yang bernama $nama.

Lihat dibaris akhir kita memanggil fungsi bisa() dengan parameter output dari fungsi nama(). Coba kita test sehingga outputnya :

Penggunaan fungsi ANONYME pada PHP

Menggunakan fungsi sebagai parameter

Dari contoh diatas kalau kita ingin membuat fungsi harus ada namanya kan

Contoh Fungsi biasa

Jadi.. kalo anonymous function / lambda, kita tidak perlu menuliskan nama fungsinya

Contoh Fungsi menggunakan Anonymous Function / Lambda

Lha terus bagaimana cara memanggilnya? Kan dia nggak ada namanya, sabar bro jangan tergesa-tergesa, kami punya solusinya kok, hehe :D

Kita pengen memakai anonymous function, jadi kita mempassing fungsi tersebut kesebuah variable. Perhatikan contoh syntax berikut ini kalau kita mengubah fungsi nama() menjadi anonymous function dan menyimpan fungsi nama() ke variable $nama

Coba kita test, akan muncul yang sama, nah kalau ada yang nggak sama mungkin codingnya ada yang kurang, teliti ya :D

Penggunaan fungsi ANONYME pada PHP

Anonymous Function / Lambda

Hmm bagaimana? Sudah paham? Apa malah pusing?, Jadi gini anonymous function itu fungsi yang nggak perlu dituliska nama fungsinya, kalau kita ingin memakai anonymous function kita harus menyimpan anonymous function tersebut kedalam sebuah variable.

Sekarang kita lanjut belajar tentang Closure.

Closure itu mirip dengan anoynmous function / lambda. Lha terus bedanya apa? Bedanya…closure ini dapat menerima parameter dan mengakses variable dari luar fungsi . Perhatikan contoh berikut ini :

~/SinauPHP/code/closure.php

Pada kasus kali ini kita membuat 2 fungsi yang pertama nama(), fungsi nama() ini menerima input title dan nama kemudian menampilkan output title dan nama. Yang kedua datang() , fungsi datang() ini menerima input string dam menampilkan output selamt datang. Lihat dibaris akhir kita memanggil fungsi datang() dengan parameter output dari fungsi nama(). Hasilnya seperti ini :

Penggunaan fungsi ANONYME pada PHP

Fungsi biasa dengan parameter

Sekarang kita akan ubah fungsi datang() menjadi closure, sehingga syntaxnya akan berubah menjadi :

~/SinauPHP/code/closure2.php

Coba kita test, Apa yang terjadi. Boommm.

Penggunaan fungsi ANONYME pada PHP

Output Menggunakan Closure

Perhatikan, untuk menggunakan variable diluar closure kita menggunakan keyword use.

Closure ini biasanya digunakan pada fungsi yang menggunakan calback sebagai parameternya. Karena lambda dan closure akan sering kita gunakan, semoga penjelasan yang singkat tersebut dapat memberikan gambaran tentang apa itu lambda dan closure

Semoga bermanfaat Wassalamualaikum