functions.php
Table of Contents
Functions
- fit() : TResult
- Returns the result of the first callback with a parameter type that fits the type of the given value.
Functions
fit()
Returns the result of the first callback with a parameter type that fits the type of the given value.
fit(TSubject $subject, callable(TFit $arg, TFit ...$args): TResult $callback, callable(TFit $arg, TFit ...$args): TResult ...$callbacks) : TResult
This function functions similar to a match or switch statement but uses
type checks to gauge which expression to evaluate for subject.
use empaphy\usephul\Fallback;
use function empaphy\usephul\fit;
$result = fit(
$example,
fn(string $v): string => "value '$v' is a string",
fn(int|float $v) => "value is an integer or float",
fn(array $v, object $w) => "value is an array or an object",
fn(Foo&(Bar|(Baz&Qux)) $v) => "both `Foo` & `Bar` or `Baz` & `Qux`",
fn(Fallback $default) => "value is of some other type",
);
This function supports Fallback as callback argument
type to indicate a default case. Alternatively, you can use mixed.
fit() is optimized for performance and makes no recursive calls, or calls to any other helper functions; it's completely self-contained.
Parameters
- $subject : TSubject
-
The value to gauge.
- $callback : callable(TFit $arg, TFit ...$args): TResult
-
A callback function. The first callback argument with a parameter type that fits subject will be called and its result returned.
- $callbacks : callable(TFit $arg, TFit ...$args): TResult
-
Additional callback functions. The first callback function with a parameter type that fits subject will be called and its result returned.
Return values
TResult —The result of the first of the callbacks that fits subject.