说,我有一个类似于等级的课程,
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做到这一点?