<?php
enum Colour {
case Red;
case Blue;
case Green;
public static function fromCaseName (string $name): ?self {
$cases = self::cases();
foreach ($cases as $selCase) {
if ($selCase->name === $name) {
return $selCase;
}
}
return null;
}
public function toRgb () {
return match ($this) {
self::Red => "255, 0, 0",
self::Blue => "0, 255, 0",
self::Green => "0, 0, 255"
};
}
public function toHex () {
return match ($this) {
self::Red => "#ff0000",
self::Blue => "#00ff00",
self::Green => "#0000ff"
};
}
public function toCmyk () {
return match ($this) {
self::Red => "0% 100% 100% 0%",
self::Blue => "100% 0% 100% 0%",
self::Green => "100% 100% 0% 0%"
};
}
}
var_dump(Colour::Red);
var_dump(Colour::Red->toRgb());
var_dump(Colour::Red->toHex());
var_dump(Colour::Red->toCmyk());
var_dump(Colour::fromCaseName('Red'));
var_dump(Colour::fromCaseName('Red')->toRgb());
preferences:
17.81 ms | 404 KiB | 5 Q