首頁 >後端開發 >php教程 >如何有效地將PHP物件轉換為陣列?

如何有效地將PHP物件轉換為陣列?

Linda Hamilton
Linda Hamilton原創
2024-12-07 15:23:12391瀏覽

How to Effectively Convert PHP Objects into Arrays?

如何將物件轉換為陣列

一維數組

對於一維數組,您可以使用強制轉換或 get_object_vars function.

轉換:

$array = (array) $object;

get_object_vars:

$array = get_object_vars($object);

這兩種方法都會將物件轉換為陣列,它們表現出細微的差異。 get_object_vars 僅傳回可公開存取的屬性,除非在物件的範圍內呼叫。但是,轉換會保留所有成員,包括私有成員和受保護成員。

多維數組

對於多維數組,您可以採用各種方法。

JSON編碼和解碼:

如果你的物件可以編碼為JSON,你可以使用PHP 原生JSON 函數:
$array = json_decode(json_encode($object), true);

此方法不包含私有和受保護成員,不適合包含非JSON 編碼資料的物件。

遞歸函數:

以下函數遞歸地將物件轉換為數組,包括私有的和受保護的成員:
function objectToArray($object) {
    if(!is_object($object) && !is_array($object))
        return $object;

    return array_map('objectToArray', (array) $object);
}

以上是如何有效地將PHP物件轉換為陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn