You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
524 B
30 lines
524 B
<?php
|
|
|
|
namespace DeepCopy\TypeFilter;
|
|
|
|
/**
|
|
* @final
|
|
*/
|
|
class ReplaceFilter implements TypeFilter
|
|
{
|
|
/**
|
|
* @var callable
|
|
*/
|
|
protected $callback;
|
|
|
|
/**
|
|
* @param callable $callable Will be called to get the new value for each element to replace
|
|
*/
|
|
public function __construct(callable $callable)
|
|
{
|
|
$this->callback = $callable;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function apply($element)
|
|
{
|
|
return call_user_func($this->callback, $element);
|
|
}
|
|
}
|
|
|