如何可靠地將 PHP stdClass 物件轉換為陣列?

Susan Sarandon
發布: 2024-11-16 00:13:02
原創
382 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板