gpt4 book ai didi

php - 将对象转换为 stdClass

转载 作者:可可西里 更新时间:2023-11-01 12:44:32 25 4
gpt4 key购买 nike

我有一个带有 __get__set 函数的数据库模型,可以防止动态创建属性(以防止输入错误):

class UserModel
{
public $Name;
public $LanguageCode; // f.e. "EN", "NL", ...

public function __get($name)
{
throw new Exception("$name is not a member");
}
public function __set($name, $value)
{
throw new Exception("$name is not a member");
}
}

现在,我有一组 UserModel 实例 ($users),我想将其传递给模板引擎。因此,我想在数组上运行 array_map 并添加一个附加属性 LanguageText,以在模板中使用。

$users = array_map(function ($v)
{
$v = (object)$v; // this doesn't help to cast away from UserModel type
$v->LanguageText = GetLanguageText($v->LanguageCode);
return $v;
}, $users);
// pass $users to templating engine

当然 $v->LanguageText = ... 这行会抛出一个错误,因为我试图添加一个动态属性。我试过这个:$v = (object)$v;UserModel 对象转换为 stdClass,但类型没有改变。有什么想法可以摆脱 UserModel 而不必序列化/反序列化数据吗?

我正在使用 PHP 5.3.5

最佳答案

你必须做双重 Actor 才能做你想做的......

$v = (object)(array)$v;

关于php - 将对象转换为 stdClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17731769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com