Any reason why backed enums are limited to int and string only?
| From: | Olle Härstedt | Date: | Wed, 31 Mar 2021 18:44:19 +0000 |
| Subject: | Any reason why backed enums are limited to int and string only? | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-113883@lists.php.net to get a copy of this message | ||
Hello,
I was trying to implement the result type from OCaml using enums, and
noticed that they can only carry int or string data, not arbitrary
data. Any specific reason for this?
Example:
enum Result: mixed {
case Ok = null;
case Error = null;
}
Error with:
Fatal error: Enum backing type must be int or string, mixed given in
/tmp/enum.php on line 3
More specifically, for this idiom to work, "Ok" needs to be mixed and
"Error" should be string.
OCaml idiom: https://ocaml.org/learn/tutorials/error_handling.html#Result-type
Olle