PHP OOP: Enum (enumerations, výčty)

PHP OOP: Enum (enumerations, výčty)

PHP 8.1. přineslo možnost používat tzv. enum - výčty. Jak se dají enumy používat si ukážeme na pár příkladech.

 

Ukázka

/**
 * 1
 * basic
*/
enum Components
{
    case Fork;
    case Drivetrain;
    case Brake;
    case Wheel;
    case Tyre;
}

// are var1 and var2 equal?
$var1 = Components::Brake;
$var2 = Components::Brake;
var_dump($var1 === $var2);


/**
 * 2
 * using values
*/
enum MtbComponents: string
{
    case Fork = 'Fox 34';
    case Drivetrain = 'Shimano Deore XT';
    case Brake = 'Shimano MT400';
    case Wheel = '29er';
    case Tyre = 'Schwalbe Nobby Nic';
}

// get value of Drivetrain
$var3 = MtbComponents::Drivetrain;
echo $var3->value . PHP_EOL;

// get all values
var_dump(MtbComponents::cases());


/**
 * 3
 * get name of enum
*/
enum Bikes
{
      case Mtb;
      case Gravel;
      case Route;

      public function getName(): string
      {
          return $this->name;
      }
}

function bikeType(Bikes $bikes): void
{
    echo "Bike: " . $bikes->getName();
}

bikeType(Bikes::Mtb);

Bike: Mtb

 

 

 

Kód vrátí

bool(true)
Shimano Deore XT
array(5) {
  [0]=>
  enum(MtbComponents::Fork)
  [1]=>
  enum(MtbComponents::Drivetrain)
  [2]=>
  enum(MtbComponents::Brake)
  [3]=>
  enum(MtbComponents::Wheel)
  [4]=>
  enum(MtbComponents::Tyre)
}
Bike: Mtb

 

 

Odkazy

Zdrojové soubory na githubu

 

 

Jak se ti článek líbil?

Komentáře (0)

Přidat komentář