小编SD.*_*SD.的帖子

有没有办法将数组转换为类属性?

有一种方法可以获取类属性并使用(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对象转换/转换为另一个类

php arrays class object type-conversion

5
推荐指数
1
解决办法
889
查看次数

标签 统计

arrays ×1

class ×1

object ×1

php ×1

type-conversion ×1