Welcome to Abdul Malik Ikhsan's Blog

–Closure in PHP 5.3– Anonymous function for special purpose

Posted in Tutorial PHP by samsonasik on April 17, 2010

Closure dalam ilmu komputer dapat diartikan anonymous function, adalah function yang tidak mempunyai nama yang spesifik. Kenapa closure dipakai ? alasannya ada 2, yaitu :

1. Dinamis.
Dalam arti flexible, ia bisa dipakai dalam situasi tertentu saja.
2. Dapat dibuat untuk term pendek
Fungsi ini bisa digunakan sekali pakai.

Yang menjadi pertanyaan adalah, kenapa harus pakai closure ? Toh untuk hal-hal sekali pakai, kita bisa langsung aja hajar coding di tempat :D. Alasannya, karena closure dapat mempunyai variable yang bebas relatif terhadap lingkungan yang mengikat variable tersebut.
Untuk lebih memperjelas, saya akan mencoba menampilkan dalam kode program :).

<?php
//Flexible & has short term
$greet = function($name)
{
 echo "Hello $name<br>";
};
$greet('World'); //print Hello World
$greet('PHP');   //print Hello PHP

$greet = function($name)
{
 echo "Hi... $name<br>";
};
$greet('World'); //print Hi...World
$greet('PHP');   //print Hi...PHP

//free variables together with
//an environment that binds those variables
function testfunc($greeting){
 $closure = function($text) use ($greeting){
 return str_replace("world", "samsonasik" , $text);
 };
 return $closure($greeting);
}
echo testfunc("Hello world");  //print Hello samsonasik

Referensi :
1. PHP Manual ( Mehdi Achour dkk )
2. http://php.net/manual/en/functions.anonymous.php
3. http://www.jibbering.com/faq/faq_notes/closures.html
4. http://wiki.php.net/rfc/closures
5. Beginning PHP 5.3 (Mat Doyle)
6. http://en.wikipedia.org/wiki/Closure_%28computer_science%29

4 Responses

Subscribe to comments with RSS.

  1. haris said, on April 17, 2010 at 10:22 pm

    mantap….trus mereset guru besar hehehe

  2. samsonasik said, on April 18, 2010 at 2:54 am

    meriset kali ris, ah, kamu mah salah tulis aja :))

  3. agito said, on April 24, 2010 at 3:48 pm

    makasih 😆
    kebetulan saya lagi belajar php..

  4. Aldi Unanto said, on January 22, 2015 at 8:20 am

    Andai closure tidak perlu menggunakan keyword ‘use’ untuk menggunakan variable dari luar fungsi, pasti jadi lebih praktis ya gan 😀 sayangnya rules-nya memang harus seperti itu.. hehe
    Anyway, thanks.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: