quelqu'un peut me dire ce qui fait que ce code ne marche pas ? ... merci
<?php
abstract class MyEnum implements IteratorAggregate
{
final public function __construct($value)
{
$c = new ReflectionClass($this);
if(!in_array($value, $c->getConstants())) {
throw IllegalArgumentException();
}
$this->value = $value;
}
final public function __toString()
{
return $this->value;
}
public function getIterator()
{
$c = new ReflectionClass($this);
return new ArrayIterator( $c->getConstants() );
}
}
class Foo extends MyEnum
{
const FOO = "foo";
const BAR = "bar";
const ITEM = "item";
}
$myEnum = new Foo();
foreach ($myEnum as $k => $v) {
echo $k . ' => ' . $v . '<br />';
}
?>
en haut à droite de la réponse qui te semble la plus pertinente.