PHP 中的物件轉換為陣列。
在 PHP 應用程式中,我們使用各種格式的資料,例如字串、陣列、物件等等……在即時應用程式中,我們可能需要以關聯陣列的形式讀取 PHP 物件結果以獲得所需的輸出。
因此,我們將在此討論如何將 PHP 物件轉換為 PHP 中的關聯陣列。
讓我們解釋一下 PHP 中的物件和關聯陣列是什麼?物件是類的例項,這意味著您可以從一個類建立多個物件。它只是一個類的樣本,並分配了記憶體。另一方面,陣列中包含字串作為索引的陣列稱為關聯陣列。它包含鍵值對,其中值與其各自的鍵關聯。
現在讓我們討論將物件轉換為陣列的各種方法。
方法一
利用 json_decode 和 json_encode 技術
最初,json_encode() 函式返回給定值的 JSON 編碼字串。json_decode() 函式將其轉換為 PHP 陣列。
示例
<?php class student { public function __construct($firstname, $lastname) { $this->firstname = $firstname; $this->lastname = $lastname; } } $myObj = new student("Alex", "Stokes"); echo "Before conversion:".'</br>'; var_dump($myObj); $myArray = json_decode(json_encode($myObj), true); echo "After conversion:".'</br>'; var_dump($myArray); ?>
輸出
Before conversion: object(student)#1 (2) { ["firstname"]=> string(4) "Alex" ["lastname"]=> string(6) "Stokes" } After conversion: array(2) { ["firstname"]=> string(4) "Alex" ["lastname"]=> string(6) "Stokes" }
解釋
在這裡,我們建立了一個 student 類,並在該類中聲明瞭一個 __construct() 函式,該函式在建立物件時執行。建構函式接收在使用 new 關鍵字建立物件時稍後提供的引數。在第一個 var_dump() 表示式中,我們列印物件,但在第二種情況下,我們使用 json_decode 和 json_encode 技術將物件轉換為陣列。
方法二
使用型別轉換技術將物件轉換為陣列
型別轉換是將一種資料型別變數用於不同資料型別的方法,它只是資料型別的精確轉換。
<?php class bag { public function __construct( $item1, $item2, $item3){ $this->item1 = $item1; $this->item2 =$item2; $this->item3 = $item3; } } $myBag = new bag("Books", "Ball", "Pens"); echo "Before conversion :".'</br>'; var_dump($myBag); $myBagArray = (array)$myBag; echo "After conversion :".'</br>'; var_dump($myBagArray); ?>
輸出
Before conversion : object(bag)#1 (3) { ["item1"]=> string(5) "Books" ["item2"]=> string(4) "Ball" ["item3"]=> string(4) "Pens" } After conversion: array(3) { ["item1"]=> string(5) "Books" ["item2"]=> string(4) "Ball" ["item3"]=> string(4) "Pens" }
解釋
在這裡,我們建立了一個名為“bag”的類,並在該類中聲明瞭一個 __construct() 函式,該函式在建立物件時執行。建構函式接收在使用 new 關鍵字建立物件時稍後提供的引數。在第一個 var_dump() 表示式中,我們只是列印物件,但在第二種情況下,我們使用型別提示過程將物件提示為陣列。
廣告