【发布时间】:2017-02-17 09:14:31
【问题描述】:
给定以下函数,我需要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“全局”,以便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;
}
【问题讨论】:
标签: php return anonymous-function