PHP динамическая загрузка классов

Допустим, у меня есть массив, который я хочу преобразовать в объект значения.

Мой класс объекта значения выглядит следующим образом:

/* file UserVO.php*/
 class UserVO
 {
    public $id;
    public $email;

     public function __construct($data)
     {
         $this->id = (int)$data['id'];
         $this->email = $data['email'];
     } 
 }

И я создаю свой массив объектов значений следующим образом:

/* file UserService.php*/
$array = array(
array(...),
array(...));
$count = count($array);
for ($i = 0; $i < $count; $i++)
{
   $result[] = new UserVO($array[$i]);
}
return $result;

ОК, так что все это прекрасно работает. Тем не менее, я бы хотел конкретно указать VO, который должен быть создан динамически, чтобы у меня была единственная динамическая функция для создания VO.

Что-то вроде:

$ret = create_vo($array, 'UserVO');

function create_vo($data, $vo)
{
  $count = count($data);
  for ($i = 0; $i < $count; $i++)
  {
     $result[] = new $vo($data[$i]); //this obviously wont work...Class name must be a valid object or a string
  }
  return $result;
}

Я понимаю, что мог бы сделать это с помощью оператора switch (итерации по всем моим VO) ... но, несомненно, гораздо более элегантное решение. Также было бы суперохладно, если бы я мог лениво загружать VO по мере необходимости, вместо того, чтобы иметь несколько включений

Любая помощь высоко ценится.

Ответы на вопрос(4)

Ваш ответ на вопрос