PHP5.3 anonim işlevlerini nasıl kullanılır

1 Cevap php

Geçenlerde gerçekten bize anonymous functions PHP istedim. Ne yazık ki benim ana hala 5.2. Ben otomatik olarak thought Bu işe:

uasort($array, function($a, $b) {
    return $a > $b;
});

Bu nasıl iştir? Basitçe yerine bir geri bir argüman olarak geçirilen? Dokümanlar özellikle bu yaptıklarını nasıl söylüyorlar bilmiyorum ama ben JavaScript anonim fonksiyonları yeterli bilgiye sahip, bu yüzden onlar olur üstlendi.

1 Cevap

Evet. Düzenli PHP geriçağırımlarının yerde kullanabilirsiniz.

(PHP 5.3) bu deneyin:

function wait($callback)
{
    sleep(10);
    call_user_func($callback);
}

wait(function(){
    echo "Hello!";
});

Nasıl call_user_func() çalışır aşağıdaki herhangi birini kabul edecektir:

'functionName'
array('className', 'methodName')
array($objectInstance, 'methodName');

ve şimdi PHP 5.3

function(){ // .. do something .. 
}

Benim tahminim bu anonim fonksiyonları için destek de iç PHP fonksiyonları kullanıcı call_user_func() geri aramalar için, ve, çünkü onlar diğer geri aramaları sadece yanı sıra çalışacak olmasıdır.