可以说我有一个数组,我想要转换为一个值对象。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,也可以是supercool,而不是有多个“包含”。
任何帮助都很感激。
您的自动加载程序仍然使用包含或要求它不会不断加载每一件事情只有当他们需要,所以你的论点是不是最有效的。因为使用自动装载机的负载更大。 – 2015-02-20 13:12:32