PHP: argüman olarak anonim işlev KATKISI

0 Cevap php

Bir argüman olarak bir anonim işlev geçmesi ve böylece işlevin return değerini ileterek, hemen çalıştırmak mümkün mü?

function myFunction(Array $data){
    print_r($data);
}

myFunction(function(){
    $data = array(
        'fruit'     => 'apple',
        'vegetable' => 'broccoli',
        'other'     => 'canned soup');
    return $data;
});

Bu geçirilen bir nesnenin şikayet nedeniyle Array tip-ipucu bir hata atar. Ben tip-ipucu kaldırırsanız Tamam, elbette oldukça istediğim sonuçlara göre, Closure Object tükürür. Ben teknik Closure myFunction, ancak, ben bu yerde başarılı gördüm ki bazı yakın olduğum için bir nesne örneği geçirerek anlıyorum. Bu mümkün mü? Eğer öyleyse, ben yanlış ne yapıyorum?

Bu tartışmanın aşkına, ben kapatılmasını geçiyorum hangi fonksiyonunu değiştiremezsiniz.

tl;dr: How can I pass an anonymous function declaration as an argument, resulting in the return value being passed as the argument.

PS: net değilse, istenilen çıktı:

Array
(
    [fruit] => apple
    [vegetable] => broccoli
    [other] => canned soup
)

0 Cevap