有一种方法可以获取类属性并使用(array)强制转换它.
$user = (array) get_object_vars($userObject)
Run Code Online (Sandbox Code Playgroud)
但我想知道,我没有找到任何直接的方法来将数组转换为类属性.
假设我有以下实现的用户类:
class User
{
private $id = 0;
private $fname = '';
private $lname = '';
private $username = '';
}
Run Code Online (Sandbox Code Playgroud)
我有以下数组:
$user = array(
'id'=> 2,
'fname' => 'FirstName',
'lname' => 'LastName',
'username' => 'UserName'
);
Run Code Online (Sandbox Code Playgroud)
我正在寻找像我们一样的类型演员(object).问题是(object)类型转换将数组转换为stdClass对象,但在这里我希望我的数组转换为我指定的类.
这个例子应该表达如下:(我的假设,PHP应该有这个.或者它可能已经有这样的东西,我不知道.)
$userobj = (object User) $user;
Run Code Online (Sandbox Code Playgroud)
上面语法的结果应该是这样的:
$userobj->id = $user['id'];
$userobj->fname = $user['fname'];
$userobj->lname = $user['lname'];
$userobj->username = $user['username'];
Run Code Online (Sandbox Code Playgroud)
我想知道是否有任何直接方法,而不是映射逻辑.寻找语言级技巧.
注意:我知道使用foreach以完成上述操作.我正在寻找一些直接的方法,如果在PHP中可用,但尚未成为焦点(可能是!).
以下内容无法解决我的问题: 将stdClass对象转换/转换为另一个类