Option::ensure( PhpOptionOption|Closure|mixed $value, null $noneValue = null )
Option factory, which creates new option based on passed value.
Description
If value is already an option, it simply returns If value is a \Closure, LazyOption with passed callback created and returned. If Option returned from callback, it returns directly (flatMap-like behaviour) On other case value passed to Option::fromValue() method
Parameters
- $value
-
(PhpOptionOption|Closure|mixed) (Required)
- $noneValue
-
(null) (Optional) used when $value is mixed or Closure, for None-check
Default value: null
Return
(PhpOptionOption)
Source
File: vendor/phpoption/phpoption/src/PhpOption/Option.php
public static function ensure($value, $noneValue = null)
{
if ($value instanceof Option) {
return $value;
} elseif ($value instanceof \Closure) {
return new LazyOption(function() use ($value, $noneValue) {
$return = $value();
if ($return instanceof Option) {
return $return;
} else {
return Option::fromValue($return, $noneValue);
}
});
} else {
return Option::fromValue($value, $noneValue);
}
}