<?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);
DUTCH
Fatal error: Uncaught Exception: de value bestaat niet! in /in/Bl4TO:19
Stack trace:
#0 /in/Bl4TO(39): Ozzie\Language::getConstName(42)
#1 {main}
thrown in /in/Bl4TO on line 19
Process exited with code 255.
Output for 5.5.24 - 5.5.35, 5.6.7 - 5.6.28
DUTCH
Fatal error: Uncaught exception 'Exception' with message 'de value bestaat niet!' in /in/Bl4TO:19
Stack trace:
#0 /in/Bl4TO(39): Ozzie\Language::getConstName(42)
#1 {main}
thrown in /in/Bl4TO on line 19
Process exited with code 255.
Output for 5.4.0 - 5.4.45
Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /in/Bl4TO on line 26
Process exited with code 255.
Output for 5.3.0 - 5.3.29
Parse error: syntax error, unexpected T_CLASS, expecting T_STRING or T_VARIABLE or '$' in /in/Bl4TO on line 26
Process exited with code 255.