так как в PHP нет перечислений, я попытался сделать что-то вроде этого:
class CacheMode{
public static $NO_CACHE = new CacheMode(1, "No cache");
private $id, $title;
public function getId(){
return $this->id;
}
public function getTitle(){
return $this->title;
}
private function __construct($id, $title){
$this->id = $id;
$this->title = $title;
}
}
Проблема в том, что я получаю ошибку разбора, если я запускаю скрипт:
Parse error: syntax error, unexpected T_NEW
Я «сработал» с этим:
class CacheMode{
public static function NO_CACHE(){
return new CacheMode(1, __("No cache",'footballStandings'));
}
public static function FILE_CACHE(){
return new CacheMode(2, __("Filecache",'footballStandings'));
}
public static function VALUES(){
return array(self::NO_CACHE(), self::FILE_CACHE());
}
private $id, $title;
public function getId(){
return $this->id;
}
public function getTitle(){
return $this->title;
}
private function __construct($id, $title){
$this->id = $id;
$this->title = $title;
}
}
Это работает, но я не очень доволен этим.Может кто-нибудь объяснить, почему я не могу сделать статические $ xyz = new XYZ ();Кстати или есть лучшее решение для этой проблемы?