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() 表示式中,我們只是列印物件,但在第二種情況下,我們使用型別提示過程將物件提示為陣列。

更新於:2019年7月30日

9K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告