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 3: Line 3:
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}}.
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 and also the {{l/same|BackedEnum}} interface which (pseudo)inherits from this one.)
==Definition==
==Definition==
<syntaxhighlight lang=php>
<syntaxhighlight lang=php>
interface UnitEnum {
interface UnitEnum {
   static function cases(): array
   static function cases(): array;


   string $name; // pseudocode
   string $name; // pseudocode
}
}
</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 {{l/php|interface}} can't declare member-variables.
==cases()==
==cases()==
This method returns an array containing one element for each case in the enum:
This method returns an array containing one element for each case in the enum:

Latest revision as of 14:26, 25 August 2024

Template:Fmt/title

Note that this (pseudo)Template:L/php cannot actually be implemented as a standard Template:L/php; it can only be (pseudo)implemented by declaring an Template:L/php.

If an enum is "backed" (declared as having a scalar value for each choice), it will implement this interface and also the Template:L/same interface which (pseudo)inherits from this one.)

Definition

interface UnitEnum {
  static function cases(): array;

  string $name; // pseudocode
}

The member-variable is labelled "pseudocode" because a normal Template:L/php can't declare member-variables.

cases()

This method returns an array containing one element for each case in the enum:

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.

See Also