类型转换和转换 stdClass 对象
在 PHP 中,专门使用的存储系统返回 stdClass 对象,这对将它们转换为完整的 stdClass 对象提出了挑战-特定类别的成熟对象。本文探讨了实现这种转换的可行性。
有限转换的类型杂耍
PHP 的类型杂耍机制可以通过括号强制转换将 stdClass 对象转换为特定类型。不过,这仅限于基本类型,如整数、布尔值、浮点数、字符串、数组和对象。
映射和对象克隆
转换 stdClass 对象到特定类的对象中,需要映射或克隆方法。可以创建映射函数来将 stdClass 属性转换为所需的类属性。或者,OOP 中的 __clone() 方法可用于创建具有相同属性的不同类的对象。
Hackish Approach: Serialization Trickery
A more非常规方法涉及改编将数组转换为特定类的对象的代码片段。通过操作 stdClass 对象的序列化数据,然后将其反序列化,结果实际上是所需类的实例。但是,由于潜在的副作用,应谨慎使用此方法。
对象转换示例代码
function objectToObject($instance, $className) { return unserialize(sprintf( 'O:%d:"%s"%s', strlen($className), $className, strstr(strstr(serialize($instance), '"'), ':') )); }
通过传递 stdClass 对象和所需的类名作为参数,该函数返回指定类的对象。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3