Skip to content
Search
Examples

Types

Description

Type casting converts values from one type to another. The cast() method transforms the input value into the target
type, throwing InvalidArgumentException if conversion is impossible. Unlike assertions which validate existing types,
casting actively transforms values (e.g., string "123" becomes integer 123, or "yes" becomes boolean true).

Casting is ideal for normalizing data from external sources like CSV files, API responses, or user input.


Cast values matching all types in an intersection. Returns value if it satisfies all types.

Documentation

Code

<?php

declare(strict_types=1);

use function Flow\Types\DSL\type_instance_of;
use function Flow\Types\DSL\type_intersection;

require __DIR__ . '/vendor/autoload.php';

$type = type_intersection(
    type_instance_of(\Countable::class),
    type_instance_of(\IteratorAggregate::class)
);

$collection = new \ArrayObject([1, 2, 3]);

echo 'Cast intersection: ' . get_class($type->cast($collection)) . "\n";
echo 'Count: ' . count($type->cast($collection)) . "\n";
Contributors

Built in the open.

Join us on GitHub
scroll back to top