Basic OOP classes to wrap php basic types conversion behind a common interface.
composer require star/php-type
You can use ValueGuesser to convert a mixed value to the object type.
use Star\Component\Type\ValueGuesser;
$int = ValueGuesser::fromMixed(12);
$int->isEmpty(); // false
$int->toBool(); // true
$int->toDate(); // throws Exception
$int->toFloat(); // 12.0
$int->toInteger(); // 12
$int->toString(); // "12"
When you don't know which type will be returned, the ValueVisitor
allows you to define operations per
type (like a switch case).
use Star\Component\Type\BooleanValue;
use Star\Component\Type\ValueVisitor;
$true = BooleanValue::asTrue();
$true->acceptValueVisitor(
new class implements ValueVisitor {
...
public function visitFloatValue(float $value): void {
// do your custom operation when the value is float.
}
...
}
);