Laravel по-русски

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

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

#1 23.05.2014 12:09:13

Кирилл

Передача параметров

Добрый день.

Возможно мой вопрос больше относится к PHP чем к Laravel, но все равно буду очень благодарен за помощь.

Как можно передать переменную в конструкцию вида:

DB::transaction(function () {
   //Здесь не видны ранее объявленные переменные
});

Конструкция вида

DB::transaction(function ($r) {
   //Здесь не видны ранее объявленные переменные
});

Выдает ошибку при попытке преобразовать переменную в строку.

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

#2 23.05.2014 12:14:01

Re: Передача параметров

PHP
$v = ...;
function 
fn() use ($v) {...};

См. замыкания.

Не в сети

#3 23.05.2014 12:32:32

Кирилл

Re: Передача параметров

Конструкция

DB::transaction(function tran() use ($req1,$req2){
				print_r(DB::statement($req1));
				print_r(DB::statement($req2));
			});

Выдает ошибку

[2014-05-23 09:29:30] production.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'syntax error, unexpected 'tran' (T_STRING), expecting '('' in C:\inetpub\support.hbc.ru\app\controllers\admin.php:156
Stack trace:
#0 [internal function]: Illuminate\Exception\Handler->handleShutdown()
#1 {main} [] []

#4 23.05.2014 13:13:50

Кирилл

Re: Передача параметров

Решил проблему ассоциативным массивом.

#5 23.05.2014 16:42:26

Re: Передача параметров

Гм, это я заработался. Естественно, если это замыкание, то у него нет имени: function fn() … Соответственно:

PHP
DB::transaction(function () use ($req1,$req2){

Не в сети

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