condition = $condition; $this->if = $handler; return $this; } /** * @param \Closure $handler * @return $this */ public function else(\Closure $handler): static { $this->else = $handler; return $this; } /** * @param \Closure $handler * @return $this */ public function catch(\Closure $handler): static { $this->catch = $handler; return $this; } /** * @param $argv * @return mixed */ public function exec(...$argv) { try { if ($this->condition !== true) { call_user_func($this->else, ...$argv); } else { call_user_func($this->if, ...$argv); } return $argv; } catch (\Throwable $exception) { call_user_func($this->catch, $exception, ...$argv); return $argv; } } }