Ich habe mal etwas rumgepsielt und versucht so etwas wie die Enums auf Java in PHP abzubilden. Es ist mir mehr oder weniger gut gelungen. Aber für einfache Status und Fehler-Fälle sollte es funktionieren.
<html>
<body>
<?php
class ErrorCodesEnum{
private static $instance=null;
public $code='';
public $name='';
public $message='';
public $error1 = null;
public $error2 = null;
private function __construct($code='',$name='',$message=''){
if($code!=''){
$this->code=$code;
$this->name=$name;
$this->message=$message;
}
else{
$this->error1=new ErrorCodesEnum('0001','#1','run into error 1');
$this->error2=new ErrorCodesEnum('0002','#2','run into error 2');
}
}
static public function instance(){
if(self::$instance==null){
self::$instance=new ErrorCodesEnum();
}
return self::$instance;
}
}
$test=ErrorCodesEnum::instance();
$var=$test->error1;
if($test->error1===$var){
echo '[var1] '.$test->error1->message.'<br>';
}
if($test->error2===$var){
echo '[var2] '.$test->error2->message.'<br>';
}
$test2=ErrorCodesEnum::instance();
if($test->error2===$test2->error2){
echo '[getInstance] '.$test->error2->message.'<br>';
}
?>
</body>
</html>