Как привести int в PHP SPlEnum?

У меня есть перечисление как это.

class TPNF_SplEnum  extends SplEnum {
public static function InitList() {
$instance = new static;

static::$List = array_flip($instance->getConstList());
}

public static function GetName($key)     {
return static::$List[$key];
}

public static function GetList() {
return static::$List;
}
}class TPNF_Model_Url_ERelative extends TPNF_SplEnum {
protected static $List;

const __default = self::None;

const None = 0;
const Admin = 1;
const Content = 2;
const Includes = 3;
const Plugins = 4;
const Site = 5;
const Theme = 6;
const Themes = 7;
}

И я хотел бы включить значение int в это перечисление, но оно не работает.

$url->Relative = new TPNF_Model_Url_ERelative((int)'2');

который выводится (используя print_r):

TPNF_Model_Url_ERelative Object ( [__default] => 2 )

вместо

TPNF_Model_Url_ERelativeContent

1

Решение

Я неправильно понял, что такое SplEnum.

Вы можете назначать их значения переменным, но не самим себе, как если бы это были объекты.

Чтобы преобразовать их значение в имя константы и наоборот, нет другого способа, кроме как создать для этого функции. Функции, которые могут быть использованы ->getConstList

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]