1. Go to this page and download the library: Download dbalabka/php-enumeration library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?phprequire_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
finalclassDayextendsEnumeration{
publicstatic Day $sunday;
publicstatic Day $monday;
publicstatic Day $tuesday;
publicstatic Day $wednesday;
publicstatic Day $thursday;
publicstatic Day $friday;
publicstatic Day $saturday;
}
Day::initialize();
finalclassFlagextendsEnumeration{
publicstatic Flag $ok;
publicstatic Flag $notOk;
publicstatic Flag $unavailable;
private int $flagValue;
protectedfunction__construct(){
$this->flagValue = 1 << $this->ordinal();
}
publicfunctiongetFlagValue() : int{
return$this->flagValue;
}
}
useDbalabka\Enumeration\Examples\Enum\Action;
$viewAction = Action::$view;
// it is possible to compare Enum elements
assert($viewAction === Action::$view);
// you can get Enum element by name
$editAction = Action::valueOf('edit');
assert($editAction === Action::$edit);
// iterate over all Enum elementsforeach (Action::values() as $name => $action) {
assert($action instanceof Action);
assert($name === (string) $action);
assert($name === $action->name());
}
// It is possible but don't do it
Action::$view = Action::$edit;
// Following isn't possible in PHP 7.4 with declared properties types
Action::$view = null;