下面的文章提供了 PHP 物件到陣列的概述。眾所周知,物件被稱為分配了記憶體的類別實例。對於數組來說,它是一種資料結構,在單一名稱中包含一個或多個類似類型的值。另一方面,關聯數組與普通的 PHP 數組不同。關聯數組是由字串索引組成的數組,該索引儲存與鍵值連結的項目值,而不是按線性索引的順序。
廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
現在,讓我們看看將 PHP 物件轉換為陣列的不同方法。
借助 json_decode 和 json_encode 方法
在此方法中,函數 json_decode 取得 JSON 編碼字串並將其變更為 PHP 變量,而 json_encode 函數傳回以 json 格式編碼為特定值的字串。
文法:
$arr = json_decode(json_encode ( $obj ) , true);
借助型別轉換
型別轉換是一種將一種資料型別變數轉換為另一種資料型別的技術。它被視為顯式資料類型轉換。它可以藉助 PHP 中的類型轉換規則將 PHP 物件轉換為陣列。
文法:
$arr = (array) $obj;
眾所周知,資料有多種格式,如字串、物件、陣列等。對 PHP 來說,也有這樣的資料格式。為了獲得所需的輸出,需要一個關聯數組格式的 php 物件 obj result。
現在,讓我們看看如何翻譯 php 物件。
代碼:
<?php class hospital { // elements . . . . function __construct( $dis1, $dis2, $dis3) { // Use this pointer . . . . } // create class object . . . // convert object to array . . . . ?>
這是將物件轉換為陣列的骨架。
現在讓我們看看如何執行此操作。
當物件為var_dump時,將顯示所有項目。
這裡,需要考慮的一個重要點是 json_decode 將 json 字串轉換為對象,除非您提供另一個布林值選項,可以是 true 或 false。即使第二個參數為true,也會得到一個陣列。
另外,在使用json的encode運算和decode操作時,如果陣列很大的話,陣列會被轉換為佔用大量資源的物件。在這種情況下,更好的方法是將陣列類型轉換為使用物件轉換的物件。
考慮 $obj = (object) $arr;句法。在這裡,物件也將被轉換為陣列。
根據需要,您可以選擇您想要的 PHP 中將陣列轉換為物件的方法。
下面提到了不同的例子:
使用型別轉換方法將物件轉換為陣列的 PHP 程式。
代碼:
<?php class hospital { var $el1; var $el2; var $el3; function __construct( $dis1, $dis2, $dis3) { $this->item1 = $dis1; $this->item2 = $dis2; $this->item3 = $dis3; } } // Creation of object for the class $dis = new hospital("D", "S", "C") ; echo "Items before conversion : " ; var_dump($dis); // convert object to array $arr = (array)$dis; echo "Items after conversion : "; var_dump($arr); ?>
輸出:
在這個程式中,創建了一個類醫院,其中包含 el1、el2 和 el3 等三個元素。然後,宣告一個 __construct() 函數,該函數在建立物件時執行。完成此操作後,建構函數將採用稍後在物件建立期間使用關鍵字“new”提供的參數。從程式中可以看出,在表達式 var_dump() 的第一種情況下列印了物件。但在表達式的第二種情況下,使用類型轉換過程將物件轉換為陣列。
使用 json 編碼和 json 解碼將物件轉換為陣列的 PHP 程式。
代碼:
<?php class hospital { var $el1; var $el2; function __construct( $dis1, $dis2 ) { $this->item1 = $dis1; $this->item2 = $dis2; } } // Creating object $dis = new hospital(500, "C"); echo "Items before conversion : " ; var_dump($dis); // convert object to array $arr = json_decode(json_encode($dis), true); echo "Items after conversion : "; var_dump($arr); ?>
輸出:
在此程序中,還創建了一個類醫院,並在其中創建了兩個元素,例如 el1 和 el2。然後,宣告一個 __construct() 函數,該函數在建立物件時執行。完成此操作後,建構函數將採用稍後在物件建立期間使用關鍵字“new”提供的參數。從程式中可以看出,在表達式 var_dump() 的第一種情況下列印了物件。但在表達式的第二種情況下,使用類型轉換過程將物件轉換為陣列。這裡,方法部分中的第一個方法用於將物件轉換為陣列。
關聯數組是由字串索引組成的數組,該字串索引儲存與鍵值連結的項目值,而不是按線性索引的順序。本文介紹了 PHP 物件到陣列的工作原理、實作方法以及不同的範例。
以上是PHP 物件到數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!