<?php
enum Fruit {
case APPLE;
case ORANGE;
case BANANA;
}
// Sample data
foreach (["APPLE", "PEAR", "ORANGE", "LEMON", "BANANA", "STRAWBERRY"] as $fruit) {
// Find matching fruit in all enum cases
$fruits = Fruit::cases();
$matchingFruitIndex = array_search($fruit, array_column($fruits, "name"));
// If found, eat it
if ($matchingFruitIndex !== false) {
$matchingFruit = $fruits[$matchingFruitIndex];
eatFruit($matchingFruit);
} else {
echo $fruit . " is not a valid Fruit\n";
}
}
function eatFruit(Fruit $fruit): void {
if ($fruit === Fruit::APPLE) {
echo "An apple a day keeps the doctor away\n";
} elseif ($fruit === Fruit::ORANGE) {
echo "When life gives you oranges, make orange juice\n";
} elseif ($fruit === Fruit::BANANA) {
echo "Banana for scale\n";
}
}
An apple a day keeps the doctor away
PEAR is not a valid Fruit
When life gives you oranges, make orange juice
LEMON is not a valid Fruit
Banana for scale
STRAWBERRY is not a valid Fruit
Output for 8.0.1 - 8.0.30
Parse error: syntax error, unexpected identifier "Fruit" in /in/ObD3s on line 3
Process exited with code 255.
Output for 7.4.0 - 7.4.33
Parse error: syntax error, unexpected 'Fruit' (T_STRING) in /in/ObD3s on line 3
Process exited with code 255.