callback = $callback; parent::__construct($options); } public function getHaystack(): array { return $this->haystack ?? call_user_func($this->callback); } /** * Set the callback * * @param callable $callback * * @return $this */ public function setCallback(callable $callback): self { $this->haystack = null; $this->callback = $callback; return $this; } }