Php 将数组强制转换为自定义对象

Php 将数组强制转换为自定义对象,php,laravel,Php,Laravel,我有一个与ChampionshipSettings类的属性匹配的数组 所以,我需要数组成为ChampionshipSetting对象 我唯一能做的就是: $settings = $championship->settings ?? (object)$mySettings; 但是$settings是一个对象,而不是ChampionshipSettings对象 如果我尝试: $settings = $championship->settings ?? (ChampionshipS

我有一个与ChampionshipSettings类的属性匹配的数组

所以,我需要数组成为ChampionshipSetting对象

我唯一能做的就是:

 $settings = $championship->settings ??  (object)$mySettings;
但是$settings是一个对象,而不是ChampionshipSettings对象

如果我尝试:

$settings = $championship->settings ??  (ChampionshipSettings)$mySettings;
我得到一个语法错误


有什么想法吗?

您可以创建一个新对象,如下所示:

$settings = $championship->settings ?? new ChampionshipSettings($mySettings);

您可以创建一个新对象,如下所示:

$settings = $championship->settings ?? new ChampionshipSettings($mySettings);

创建一个工厂,从您的数组中构建ChampionshipSettings对象。是的,它应该可以做到这一点。。。。但我来自java世界,在java中它是非常基本的东西,PHP不允许你轻松地做这种事情吗?类型系统与java和PHP完全不同。如果您想将json转换为嵌套的类结构(例如),请查看JMS序列化程序以进行反序列化。即使PHP支持这种类型的强制转换,factory看起来也更安全,更易于调试(隐式转换)。创建一个factory,从您的数组中构建ChampionshipSettings对象。是的,它应该可以做到这一点。。。。但我来自java世界,在java中它是非常基本的东西,PHP不允许你轻松地做这种事情吗?类型系统与java和PHP完全不同。如果您想将json转换为嵌套的类结构(例如),请查看JMS序列化程序以进行反序列化。即使PHP支持这种类型的转换,工厂看起来也更安全,更容易调试(隐式转换)!即使我显式声明一个构造函数,Txit仍然有效!德克萨斯州