tleckie/enum

PHP Enum object


Keywords
php, enum, enumerator, php-enum, php-8, tleckie, enumeration
License
MIT

Documentation

PHP Enum object

Latest Version on Packagist Scrutinizer Code Quality Build Status Total Downloads Code Intelligence Status

Enumerator in php

Installation

You can install the package via composer:

composer require tleckie/enum

Usage

Extends Enum class.

<?php

/**
 * Class MyEnum
 *
 * @author Teodoro Leckie Westberg <teodoroleckie@gmail.com>
 */
class MyEnum extends Enum {

    public const VALUE1 = 1;
    public const VALUE2 = 2;
    public const VALUE3 = 3;
}


$enum = new MyEnum(3);

// Dynamic static methods available
$enum::VALUE3();    // new MyEnum(3)
$enum::VALUE1();    // new MyEnum(1)
$enum::VALUE2();    // new MyEnum(2)
$enum->getValue();  // int(3)
$enum->getValue();  // int(3)
$enum->getKey();    // "VALUE3"

getValues();

$enum->getValues();

Output:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

getKeys()

$enum->getKeys();

Output:

array(3) {
  [0]=>
  string(6) "VALUE1"
  [1]=>
  string(6) "VALUE2"
  [2]=>
  string(6) "VALUE3"
}

toArray();

$enum->toArray();

Output:

array(3) {
  ["VALUE1"]=>
  int(1)
  ["VALUE2"]=>
  int(2)
  ["VALUE3"]=>
  int(3)
}

Cast string

(string) MyEnum::VALUE1();   // "1"
(string) new MyEnum(3);      // "3"
(string) new MyEnum( MyEnum::VALUE1() );  // "1"