TypeGuard - PHP type validation partly inspired by Ceylon Union and Intersection types
TypeGuard can validate:
- Scalar types:
string
,integer
, etc.:
(new TypeGuard('string'))->match('foo'); // => true
- Object types:
ArrayAccess
,stdClass
, etc.:
(new TypeGuard('stdClass'))->match(new stdClass()); // => true
- Union types:
string|integer
:
$guard = new TypeGuard('string|integer');
$guard->match('foo'); // => true
$guard->match(1); // => true
- Intersection types:
ArrayAccess&Countable
:
(new TypeGuard('ArrayAccess&Countable'))->match(new ArrayIterator()); // => true
- Optional types:
?string
:
(new TypeGuard('?string'))->match(null); // => true