function parse(string|int $id): User|null {
return User::find($id);
}
// PHP 8.0 also added: int|string, float|int, etc.
// Special types: mixed, never, void
interface Serializable {}
interface Loggable {}
function process(Serializable&Loggable $obj): void {
// $obj is guaranteed to implement both interfaces
}
Disjunctive Normal Form — combining union and intersection: (Serializable&Loggable)|null.