Примите функцию как параметр в PHP

Я задавался вопросом, возможно ли или не передать функцию как параметр в PHP; я хочу что-то как то, когда Вы программируете в JS:

object.exampleMethod(function(){
    // some stuff to execute
});

То, что я хочу, должно выполнить ту функцию где-нибудь в exampleMethod. Это возможно в PHP?

92
задан danorton 12 March 2015 в 02:13
поделиться

3 ответа

Это возможно, если вы используете PHP 5.3.0 или выше.

См. Анонимные функции в руководстве.

В вашем случае вы бы определили exampleMethod следующим образом:

function exampleMethod($anonFunc) {
    //execute anonymous function
    $anonFunc();
}
136
ответ дан 24 November 2019 в 06:26
поделиться

Чтобы добавить к остальным, вы можете передать имя функции:

function someFunc($a)
{
    echo $a;
}

function callFunc($name)
{
    $name('funky!');
}

callFunc('someFunc');

Это будет работать в PHP4.

46
ответ дан 24 November 2019 в 06:26
поделиться

Вы также можете использовать create_function , чтобы создать функцию как переменную и передать ее. Хотя мне больше нравится ощущение анонимных функций . Иди зомбатом.

15
ответ дан 24 November 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: