如何可靠地将 PHP stdClass 对象转换为数组?

Susan Sarandon
发布: 2024-11-16 00:13:02
原创
380 人浏览过

How to Reliably Convert a PHP stdClass Object to an Array?

php stdClass 到数组

使用 PHP 时,您可能会遇到将 stdClass 对象转换为数组的需要。这种转换可能很棘手,不同的方法可能会导致意外的行为。

一种常见的方法是使用 (array) $booking 将对象转换为数组。但是,如果对象包含任何嵌套对象或数组,此方法可能会导致空数组。

另一种选择是使用 json_decode($booking, true)。此方法会将对象转换为数组,但如果对象包含任何嵌套对象或数组,也可能会导致空数组。

将 stdClass 对象转换为数组的更可靠方法是使用一个递归函数,迭代对象及其子对象,将每个元素转换为其相应的数组表示形式。以下是此类函数的示例:

public function objectToArray($d) {
        if (is_object($d)) {
            // Gets the properties of the given object
            // with get_object_vars function
            $d = get_object_vars($d);
        }

        if (is_array($d)) {
            /*
             * Return array converted to object
             * Using __FUNCTION__ (Magic constant)
             * for recursive call
             */
            return array_map(__FUNCTION__, $d);
        }
        else {
            // Return array
            return $d;
        }
    }
登录后复制

此函数将 stdClass 对象转换为数组,保留原始对象的结构和值。如果需要,它还可以用于将数组转换为对象。

以上是如何可靠地将 PHP stdClass 对象转换为数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板