PHP/native/BackedEnum: Difference between revisions

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
< PHP
Created page with "{{fmt/title|BackedEnum pseudointerface}} * '''manual page''': [https://www.php.net/manual/en/class.backedenum.php The BackedEnum interface] Note that this cannot actually be..."
 
pseudocode in official doc did not include "function" in method declarations
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{fmt/title|BackedEnum pseudointerface}}
{{fmt/title|BackedEnum pseudointerface|'''manual page''': [https://www.php.net/manual/en/class.backedenum.php The BackedEnum interface]}}
* '''manual page''': [https://www.php.net/manual/en/class.backedenum.php The BackedEnum interface]


Note that this cannot actually be implemented as a class, except by declaring a backed enum.
Note that this (pseudo)interface cannot actually be implemented as a standard class; it can only be (pseudo)implemented by declaring a backed {{l/php|enum}}.
==Definition==
==Definition==
<syntaxhighlight lang=php>
<syntaxhighlight lang=php>
interface BackedEnum extends UnitEnum {
interface BackedEnum extends UnitEnum {
/* Methods */
  static from(int|string $value): static;
  static tryFrom(int|string $value): ?static;


   string|int $value; // unofficial
   static function from(int|string $value): static;
  static function tryFrom(int|string $value): ?static;


/* Inherited */
  string|int $value; // pseudocode
  static UnitEnum::cases(): array;
  static cases(): array;


   string $name; // unofficial
  // INHERITED from UnitEnum (unmodified):
 
  static function cases(): array;
   string $name; // pseudocode
}
}
</syntaxhighlight>
</syntaxhighlight>
The member-variables are labelled "pseudocode" because a normal {{l/php|interface}} can't declare member-variables.

Latest revision as of 14:24, 25 August 2024

BackedEnum pseudointerface
manual page: The BackedEnum interface

{{#set: page title=BackedEnum pseudointerface }}

Note that this (pseudo)interface cannot actually be implemented as a standard class; it can only be (pseudo)implemented by declaring a backed enum.

Definition

interface BackedEnum extends UnitEnum {

   static function from(int|string $value): static;
   static function tryFrom(int|string $value): ?static;

   string|int $value; // pseudocode

   // INHERITED from UnitEnum (unmodified):

   static function cases(): array;
   string $name; // pseudocode
}

The member-variables are labelled "pseudocode" because a normal interface can't declare member-variables.