- array_flip: documentation ( source)
<?php
namespace Ozzie;
use Exception;
use ReflectionClass;
class Language {
const DUTCH = 1;
private static $languages_values;
public static function getConstName($value) {
if (isset(self::$languages_values[$value])) {
return self::$languages_values[$value];
}
throw new Exception('de value bestaat niet!');
}
public static function init() {
static $initialized = false;
if ( ! $initialized) {
$ref_class = new ReflectionClass(self::class);
self::$languages_values = array_flip($ref_class->getConstants());
$initialized = true;
}
}
}
// ja, dit zet je in het zelfde bestand
Language::init();
// nee, dit dan weer niet niet
echo Language::getConstName(1), Language::getConstName(42);