Сохранить функцию внутри массива

Могу ли я сделать что-то подобное?

$arrayFn[1] = function fnName(){
    echo "test";
}
$arrayFn[1];

person homerun    schedule 16.03.2014    source источник


Ответы (1)


Анонимные функции не могут иметь имени:

$arrayFn[1] = function (){
   echo "test";
};
$arrayFn[1](); // run it!
person Bram    schedule 16.03.2014
comment
Я считаю, что вам понадобится () после функции переменной, чтобы вызвать ее. - person Madara's Ghost; 17.03.2014
comment
Вы совершенно правы, спасибо. Я отредактировал ответ. - person Bram; 17.03.2014
comment
хранение многих функций в массиве может вызвать переполнение или что-то плохое в любом случае? - person homerun; 17.03.2014
comment
@obeyjoseph: Нет, мой класс Validator обычно содержит 30-40 функций проверки в ассоциативном массиве. Кажется, ничего плохого не происходит. Тем не менее, вы должны провести собственный бенчмаркинг для своих собственных приложений. - person Madara's Ghost; 17.03.2014