有一种方法可以获取类属性并使用(array)
强制转换。
$user = (array) get_object_vars($userObject)
但是我想知道,我没有找到将数组转换为类属性的直接方法。
假设我有一个用户类,其实现如下:
class User
{
private $id = 0;
private $fname = '';
private $lname = '';
private $username = '';
}
我有以下数组:
$user = array(
'id'=> 2,
'fname' => 'FirstName',
'lname' => 'LastName',
'username' => 'UserName'
);
我正在寻找一种类型转换,就像我们有 (object)
一样。问题是 (object)
类型转换将数组转换为 stdClass
对象,但我想要将我的数组转换为指定的类。
示例应该说明如下:(我假设PHP应该有这个功能。或者它可能已经有类似的东西,而我不知道。)
$userobj = (object User) $user;
上述语法的结果应该如下所示:
$userobj->id = $user['id'];
$userobj->fname = $user['fname'];
$userobj->lname = $user['lname'];
$userobj->username = $user['username'];
我想知道是否有直接的方法,而不是映射逻辑。寻找语言级别的技巧。
注意:我知道使用foreach
可以完成上述任务。但如果PHP中有可用的直接方法,我还没有关注到(也许!)。
以下内容并不能解决我的问题: 将stdClass对象转换/强制转换为另一个类
fetch_object()
或类似的函数,你可以在其中指定类。 - AbraCadaver