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.phpPada 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 : Dari contoh diatas kalau kita ingin membuat fungsi harus ada namanya kan Contoh Fungsi biasaJadi.. kalo anonymous function / lambda, kita tidak perlu menuliskan nama fungsinya Contoh Fungsi menggunakan Anonymous Function / LambdaLha 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 Anonymous Function / LambdaHmm 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 : 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 : Fungsi biasa dengan parameterSekarang kita akan ubah fungsi datang() menjadi closure, sehingga syntaxnya akan berubah menjadi : ~/SinauPHP/code/closure2.phpCoba kita test, Apa yang terjadi. Boommm. Output Menggunakan ClosurePerhatikan, 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 |