Учитывая следующую функцию, мне нужно calculateProducts()
, чтобы вернуть массив $products
.Использование переменной из анонимной функции
public function calculateProducts($params) {
SoapWrapper::service('calculateProducts',
function ($service) use ($data) {
$listProducts = $service->call('calculateProducts');
foreach ($listProducts->return->productList as $pdt) {
$product = new ProductsResult;
$product->valueA = "a";
$product->valueB = "b";
$product->save();
$products[] = $product;
}
}
);
return $products;
}
Это не работает: Я думаю, я баловаться с анонимной функции (какие функции я борюсь читать хорошо сейчас), так как $products
находится в нем.
Как сделать $products
"global", так что calculateProducts()
может его вернуть?
Я попытался вернуться $products
в анонимную функцию, а затем возвращая значение объекта SoapWrapper, конечно, это не возвращает массив объектов ProductsResult необходимо, смотрите ниже:
public function calculateProducts($params) {
$pdts = SoapWrapper::service('calculateProducts',
function ($service) use ($data) {
$listProducts = $service->call('calculateProducts');
foreach ($listProducts->return->productList as $pdt) {
$product = new ProductsResult;
$product->valueA = "a";
$product->valueB = "b";
$product->save();
$products[] = $product;
}
return $products;
}
);
return $pdts;
}