PHP/native/UnitEnum: Difference between revisions
from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
{{fmt/title|UnitEnum pseudointerface|'''manual page''': [https://www.php.net/manual/en/class.unitenum.php The UnitEnum interface]}} | {{fmt/title|UnitEnum pseudointerface|'''manual page''': [https://www.php.net/manual/en/class.unitenum.php The UnitEnum interface]}} | ||
Note that this interface cannot actually be implemented as a standard class; it can only be (pseudo)implemented by declaring an {{l/php|enum}}. | Note that this (pseudo){{l/php|interface}} cannot actually be implemented as a standard {{l/php|class}}; it can only be (pseudo)implemented by declaring an {{l/php|enum}}. | ||
If an enum is "backed" (declared as having a scalar value for each choice), it will implement this interface but also the {{l/same|BackedEnum}} interface.) | If an enum is "backed" (declared as having a scalar value for each choice), it will implement this interface but also the {{l/same|BackedEnum}} interface.) | ||
| Line 13: | Line 13: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
The member-variable is labelled "pseudocode" because a normal interface can't declare member-variables. | The member-variable is labelled "pseudocode" because a normal interface can't declare member-variables. | ||
==cases()== | |||
This method returns an array containing one element for each case in the enum: | |||
* {{fmt/arg|array index}} (int) => {{fmt/arg|enum case-object}} (BackedEnum) | |||
This list can then be used to build other arrays indexing the enum class's names and/or any other information known to each case. | |||
Revision as of 13:33, 25 August 2024
|
UnitEnum pseudointerface manual page: The UnitEnum interface
|
{{#set: page title=UnitEnum pseudointerface }}
Note that this (pseudo)interface cannot actually be implemented as a standard class; it can only be (pseudo)implemented by declaring an enum.
If an enum is "backed" (declared as having a scalar value for each choice), it will implement this interface but also the [[../BackedEnum|BackedEnum]] interface.)
Definition
interface UnitEnum {
static function cases(): array
string $name; // pseudocode
}
The member-variable is labelled "pseudocode" because a normal interface can't declare member-variables.
cases()
This method returns an array containing one element for each case in the enum:
- <array index> (int) => <enum case-object> (BackedEnum)
This list can then be used to build other arrays indexing the enum class's names and/or any other information known to each case.
