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