首頁  >  文章  >  後端開發  >  PHP 物件到數組

PHP 物件到數組

WBOY
WBOY原創
2024-08-29 12:43:59881瀏覽

下面的文章提供了 PHP 物件到陣列的概述。眾所周知,物件被稱為分配了記憶體的類別實例。對於數組來說,它是一種資料結構,在單一名稱中包含一個或多個類似類型的值。另一方面,關聯數組與普通的 PHP 數組不同。關聯數組是由字串索引組成的數組,該索引儲存與鍵值連結的項目值,而不是按線性索引的順序。

廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

PHP 物件到陣列的方法

現在,讓我們看看將 PHP 物件轉換為陣列的不同方法。

方法1

借助 json_decode 和 json_encode 方法

在此方法中,函數 json_decode 取得 JSON 編碼字串並將其變更為 PHP 變量,而 json_encode 函數傳回以 json 格式編碼為特定值的字串。

文法:

$arr = json_decode(json_encode ( $obj ) , true);

方法2

借助型別轉換

型別轉換是一種將一種資料型別變數轉換為另一種資料型別的技術。它被視為顯式資料類型轉換。它可以藉助 PHP 中的類型轉換規則將 PHP 物件轉換為陣列。

文法:

$arr = (array) $obj;

如何在 PHP 中將物件轉換為陣列?

眾所周知,資料有多種格式,如字串、物件、陣列等。對 PHP 來說,也有這樣的資料格式。為了獲得所需的輸出,需要一個關聯數組格式的 php 物件 obj result。

現在,讓我們看看如何翻譯 php 物件。

代碼:

<?php
class hospital
{
// elements
. . . .
function __construct( $dis1, $dis2, $dis3)
{
// Use this pointer
. . . .
}
// create class object
. . .
// convert object to array
. . . .
?>

這是將物件轉換為陣列的骨架。

現在讓我們看看如何執行此操作。

  • 為了對字串進行編碼,請使用「object = json_encode($array);」

當物件為var_dump時,將顯示所有項目。

  • 為了解碼為對象,將使用可用的 json 字串對物件進行轉換和字串格式化。它將使用 $obj = json_decode(json_encode($arr));
  • 完成
  • 當物件為var_dump時,轉成陣列後會顯示所有項目

這裡,需要考慮的一個重要點是 json_decode 將 json 字串轉換為對象,除非您提供另一個布林值選項,可以是 true 或 false。即使第二個參數為true,也會得到一個陣列。

另外,在使用json的encode運算和decode操作時,如果陣列很大的話,陣列會被轉換為佔用大量資源的物件。在這種情況下,更好的方法是將陣列類型轉換為使用物件轉換的物件。

考慮 $obj = (object) $arr;句法。在這裡,物件也將被轉換為陣列。

根據需要,您可以選擇您想要的 PHP 中將陣列轉換為物件的方法。

PHP 物件到陣列的範例

下面提到了不同的例子:

範例#1

使用型別轉換方法將物件轉換為陣列的 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);
?>

輸出:

PHP 物件到數組

在這個程式中,創建了一個類醫院,其中包含 el1、el2 和 el3 等三個元素。然後,宣告一個 __construct() 函數,該函數在建立物件時執行。完成此操作後,建構函數將採用稍後在物件建立期間使用關鍵字“new”提供的參數。從程式中可以看出,在表達式 var_dump() 的第一種情況下列印了物件。但在表達式的第二種情況下,使用類型轉換過程將物件轉換為陣列。

範例#2

使用 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);
?>

輸出:

PHP 物件到數組

在此程序中,還創建了一個類醫院,並在其中創建了兩個元素,例如 el1 和 el2。然後,宣告一個 __construct() 函數,該函數在建立物件時執行。完成此操作後,建構函數將採用稍後在物件建立期間使用關鍵字“new”提供的參數。從程式中可以看出,在表達式 var_dump() 的第一種情況下列印了物件。但在表達式的第二種情況下,使用類型轉換過程將物件轉換為陣列。這裡,方法部分中的第一個方法用於將物件轉換為陣列。

結論

關聯數組是由字串索引組成的數組,該字串索引儲存與鍵值連結的項目值,而不是按線性索引的順序。本文介紹了 PHP 物件到陣列的工作原理、實作方法以及不同的範例。

以上是PHP 物件到數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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