Представьте себе (даже если это не хороший стиль) у вас есть массив, в который вы добавляете Массивы с некоторым контентом.
Может быть что-то вроде этого:Анонимная функция в php
$result_array = array();
foreach(... as $key => $value) {
$temp = array();
$temp["start"] = $value->start;
$temp["end"] = $value->end;
$result_array[] = $temp;
}
// Image it will produce for example an $result_array like this:
array(
array("start" => 10, "end" => 20),
array("start" => 100, "end" => 120)
);
До сих пор так хорошо. Теперь давайте сделаем некоторые такие грязные вещи: Я хочу добавить анонимную функцию, которая возвращает интервал между стартом и end в каждом temp_array. Это может выглядеть примерно так:
foreach(... as $key => $value) {
$temp = array();
$temp["start"] = $value->start;
$temp["end"] = $value->end;
$temp["duration"] = function() { return abs(__START__ - __END__); }
$result_array[] = $temp;
}
Как я нахожусь в «Array», и я не знаю, мой индекс, как я могу получить доступ к времени начала и окончания?
Пожалуйста, не пламените меня за плохой стиль или синтаксические ошибки, это просто пример, который я записал в поле вопроса.
Заранее спасибо.
ленивая операция? –
Извините, я просто имел в виду, почему вы не можете просто вычислить значение во время цикла, вместо использования анонимной функции. Знают ли эти значения после этого цикла? – Uby