Skip to content

Latest commit

 

History

History
108 lines (92 loc) · 2.02 KB

README.md

File metadata and controls

108 lines (92 loc) · 2.02 KB

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"