<?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());
- Output for 8.1.30 - 8.1.33, 8.2.21 - 8.2.29, 8.3.3 - 8.3.25, 8.4.1 - 8.4.12
- enum(Colour::Red)
string(9) "255, 0, 0"
string(7) "#ff0000"
string(15) "0% 100% 100% 0%"
enum(Colour::Red)
string(9) "255, 0, 0"
preferences:
56.2 ms | 406 KiB | 5 Q