Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 23.01.2013 15:10:46

Ikeaboy
Откуда: Киев
Сообщений: 28

Использование кэша, get/remember, передача функции параметром

Добрый день! Возник вопрос при прочтении документации, который относиться, подозреваю, больше к основам php.

В документации приводиться данный пример:

$users = Cache::remember('count', function() {return DB::table('users')->count();}, 5);

Второй параметр, запрос при отсутствии кэша, обернут в дополнительную функцию. Логично, что симпатичнее реализовать это так:

$users = Cache::remember('count', DB::table('users')->count(), 5);

Но, если приведен именно такой пример, есть определенная причина. Правильно я понимаю эту причину?

В первом случае передается запрос, который вызовется лишь при отсутствии значения в кэша (передается ссылка на запрос). Во втором, он вызовется в любом случае, даже если кэш существует, но результат запроса будет использован лишь при отсутствии значения в кэша.

Прав ли я? Как называется такой прием, и где можно прочитать о нем более подробно?

Заранее спасибо!

Не в сети

#2 23.01.2013 15:16:22

Re: Использование кэша, get/remember, передача функции параметром

Прав. Это называется замыканием (анонимной функцией), они появились в PHP 5.3.

Тему перенёс.

Не в сети

#3 26.01.2013 19:08:57

Ikeaboy
Откуда: Киев
Сообщений: 28

Re: Использование кэша, get/remember, передача функции параметром

Большое спасибо! Как оказалась использовал их ежедневно в jQuery, и даже не догадывался.

Не в сети

Подвал раздела