oop — PHP заставляет параметр функции быть in_array ()

Скажем, у меня есть класс с такими ребятами,

class Car
{
// Types
const TYPE_SALOON = "Saloon";
const TYPE_HATCHBACK = "Hatchback";
...

public static function validTypes() {
return array(
static::TYPE_SALOON,
static::TYPE_HATCHBACK,
...
);
}
}

Мне нужно, чтобы конструктор принял входной аргумент с именем type, который выходит из массива, возвращаемого validTypes (). Обычно я делаю это так:

function __construct($type, ...) {
if(!in_array($type, static::validTypes())) {
// Throw Exception
}
}

Какой более элегантный способ сделать это?

Есть ли способ сделать это с typeHinting?

1

Решение

Задача ещё не решена.

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

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

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