Here's a clearer example usage in case anyone else finds the
current documentation confusing (as I did).
<?php
class Fruit extends SplEnum
{
// If no value is given during object construction this value is used
const __default = 1;
// Our enum values
const APPLE = 1;
const ORANGE = 2;
}
$myApple = new Fruit();
$myOrange = new Fruit(Fruit::ORANGE);
$fail = 1;
function eat(Fruit $aFruit)
{
if (Fruit::APPLE == $aFruit) {
echo "Eating an apple.\n";
} elseif (Fruit::ORANGE == $aFruit) {
echo "Eating an orange.\n";
}
}
eat($myApple); // Eating an apple.
eat($myOrange); // Eating an orange.
eat($fail); // PHP Catchable fatal error: Argument 1 passed to eat() must be an instance of Fruit, integer given
?>
La clase SplEnum
(No hay información de versión disponible, podría estar únicamente en SVN)
Introducción
SplEnum proporciona la capacidad para emular y crear nativamente en PHP objetos de enumeración.
Sinopsis de la Clase
Constantes predefinidas
-
SplEnum::__default
Ejemplos
Ejemplo #1 Ejemplo de uso de SplEnum
<?php
class Month extends SplEnum {
const __default = self::Enero;
const Enero = 1;
const Febrero = 2;
const Marzo = 3;
const Abril = 4;
const Mayo = 5;
const Junio = 6;
const Julio = 7;
const Agosto = 8;
const Septiembre = 9;
const Octubre = 10;
const Noviembre = 11;
const Diciembre = 12;
}
echo new Month(Month::Junio) . PHP_EOL;
try {
new Month(13);
} catch (UnexpectedValueException $uve) {
echo $uve->getMessage() . PHP_EOL;
}
?>
El resultado del ejemplo sería:
6 El valor no es un const en la enumeración de la clase Month
Tabla de contenidos
- SplEnum::getConstList — Devuelve todas las constantes (o valores posibles) como un array
No Such Alias ¶
2 years ago
