PHP 如何给匿名函数赋参数值
How to assign parameter value to anonymous function in PHP
$item
变量如何具有来自 $products
的值
$products = $products->map(function($item){
$item->getCustomPrices($this->user->client);
$item->getMarkUpPrices($this->user->client);
return $item;
});
如果你深入研究 laravel 框架,$products
的类型 Illuminate\Database\Eloquent\Collection
. It implements the map
method and the underlying implementation 是:
public function map(callable $callback)
{
$result = parent::map($callback);
return $result->contains(function ($item) {
return ! $item instanceof Model;
}) ? $result->toBase() : $result;
}
Illuminate\Database\Eloquent\Collection
的父 class 是 Illuminate\Support\Collection
and the underlying implementation 是:
public function map(callable $callback)
{
$keys = array_keys($this->items);
$items = array_map($callback, $this->items, $keys);
return new static(array_combine($keys, $items));
}
它使用 array_map
方法并将回调函数应用于每个值。
array array_map ( callable $callback , array $array1 [, array $... ] )
一个简单的例子来告诉你如何实现它
https://implode.io/Ce1azD
class Products
{
protected $items = [];
public function __construct($items)
{
$this->items = $items;
}
public function map(callable $callback)
{
return array_map($callback, $this->items);
}
}
$products = new Products([1, 2, 3, 4]);
return $products->map(function ($item) {
return $item * 2;
});
$item
变量如何具有来自 $products
$products = $products->map(function($item){
$item->getCustomPrices($this->user->client);
$item->getMarkUpPrices($this->user->client);
return $item;
});
如果你深入研究 laravel 框架,$products
的类型 Illuminate\Database\Eloquent\Collection
. It implements the map
method and the underlying implementation 是:
public function map(callable $callback)
{
$result = parent::map($callback);
return $result->contains(function ($item) {
return ! $item instanceof Model;
}) ? $result->toBase() : $result;
}
Illuminate\Database\Eloquent\Collection
的父 class 是 Illuminate\Support\Collection
and the underlying implementation 是:
public function map(callable $callback)
{
$keys = array_keys($this->items);
$items = array_map($callback, $this->items, $keys);
return new static(array_combine($keys, $items));
}
它使用 array_map
方法并将回调函数应用于每个值。
array array_map ( callable $callback , array $array1 [, array $... ] )
一个简单的例子来告诉你如何实现它 https://implode.io/Ce1azD
class Products
{
protected $items = [];
public function __construct($items)
{
$this->items = $items;
}
public function map(callable $callback)
{
return array_map($callback, $this->items);
}
}
$products = new Products([1, 2, 3, 4]);
return $products->map(function ($item) {
return $item * 2;
});