Обновление. Начиная с PHP7, теперь можно использовать анонимную функцию разыменования с помощью синтаксиса:
$array[] = [
'new' => (function()
{
...
return mt_rand();
})(),
'or' => getClosure()()
]
Оригинальное сообщение: я недавно экспериментировал с некоторыми вещами и задавался вопросом, есть ли способ использовать возвращаемое значение анонимной функции
Допустим, у меня был цикл for, который сделал массив, в котором каждое значение массива должно было иметь вызов базы данных, что я хотел бы сделать:
for($i = 0; $i != 10; $i++)
{
$array[] = [
'new' => function(){
// some proccesing here maybe
// lets use mt_rand for this example.
return mt_rand();
},
'old' => function(){
return mt_rand();
}
];
}
или, может быть
echo function(){
// again, we'll just use mt_rand
return mt_rand();
};
Они оба возвращают класс closure
. Нужно ли вообще передавать возвращаемое им значение обратно в массив или эхо для приведенных выше примеров?
Обновление: я установил, что это невозможно, поэтому запрос функции можно найти здесь: http://bugs.php.net/bug.php?id=64608