PHP值对象自动创建
假设我在php中定义了一个class value对象,其中定义了类中的每个变量。比如:PHP值对象自动创建,php,object,Php,Object,假设我在php中定义了一个class value对象,其中定义了类中的每个变量。比如: class UserVO { public $id; public $name; } $something = $data->id; //typed as UserVO.id $else = $data->name; //typed as UserVO.name 我现在在另一个类中有一个函数,它需要一个数组($data) 我如何告诉php$data参数应该被键入为UserVO?然后,我
class UserVO {
public $id;
public $name;
}
$something = $data->id; //typed as UserVO.id
$else = $data->name; //typed as UserVO.name
我现在在另一个类中有一个函数,它需要一个数组($data)
我如何告诉php$data参数应该被键入为UserVO?然后,我可以完成代码,以执行以下操作:
class UserVO {
public $id;
public $name;
}
$something = $data->id; //typed as UserVO.id
$else = $data->name; //typed as UserVO.name
我猜是这样的,但这显然不起作用
$my_var = $data as new userVO();
在PHP5中,这将起作用。这叫做类型提示
function save_user(UserVO $data) {
//run code to save the user
}
使用或操作人员
类型暗示
public function save_user(UserVO $data);
如果给定类型不是UserVO的实例,则将引发错误
瞬间
public function save_user($data)
{
if ($data instanceof UserVO)
{
// do something
} else {
throw new InvalidArgumentException('$data is not a UserVO instance');
}
}
将抛出一个InvalidArgumentException(感谢salathe为我指出了这个更详细的异常),您将能够捕获并处理该异常
顺便说一句,看看这里的可能会派上用场,有助于将它与
save\u user
@salath中可能出现的任何其他异常区分开来。你说得对,我根据你的评论编辑了我的答案。