rfc:intersection_types
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
rfc:intersection_types [2016/04/28 03:55] – levim | rfc:intersection_types [2016/04/28 14:23] – Add missing parameter levim | ||
---|---|---|---|
Line 12: | Line 12: | ||
Intersection types allow the programmer to write multiple type declarations for a parameter or return value. The value must satisfy all of the declared types. Each type is separated by ampersand (''&'' | Intersection types allow the programmer to write multiple type declarations for a parameter or return value. The value must satisfy all of the declared types. Each type is separated by ampersand (''&'' | ||
- | Here is a practical example: | + | Here is a practical example. Given this definition: |
<PHP> | <PHP> | ||
Line 27: | Line 27: | ||
} | } | ||
} | } | ||
+ | </ | ||
- | // Fatal error: Uncaught TypeError: Argument 1 passed to RecordsToList() must be Countable and Traversable, | + | This will error ([[https://3v4l.org/ |
+ | < | ||
+ | // Argument 1 passed to RecordsToList() must be Countable and Traversable, | ||
echo RecordsToList([" | echo RecordsToList([" | ||
+ | </ | ||
- | // Fine: | + | This works correctly ([[https:// |
+ | <PHP> | ||
echo RecordsToList(new ArrayObject([" | echo RecordsToList(new ArrayObject([" | ||
// Output: | // Output: | ||
Line 40: | Line 45: | ||
// < | // < | ||
// </ol> | // </ol> | ||
- | |||
</ | </ | ||
Line 62: | Line 66: | ||
<PHP> | <PHP> | ||
- | function RecordsToList(Array | Countable & Traversable): | + | function RecordsToList(Array | Countable & Traversable |
// ... | // ... | ||
} | } |
rfc/intersection_types.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1