首頁 >後端開發 >php教程 >如何快速將PHP物件轉換為關聯數組?

如何快速將PHP物件轉換為關聯數組?

DDD
DDD原創
2024-12-21 19:07:10435瀏覽

How to Quickly Convert a PHP Object into an Associative Array?

如何快速將PHP 物件轉換為關聯數組

在整合操作基於物件的資料的API 時,經常會出現這樣的需求將這些物件轉換為數組,以便與使用數組的現有程式碼保持一致。以下是執行此轉換的簡潔明了的解決方案:

對物件進行類型轉換:

要將物件轉換為關聯數組,您可以簡單地對它進行型別轉換,如下:

$array = (array) $yourObject;

這種型別轉換方法是一種直接且有效率的方法。但是,請務必注意,它僅執行淺層轉換。

轉換數組中的屬性可訪問性:

將物件類型轉換為陣列時,適用各種規則財產可近性:

  • 公共財產可直接在陣列。
  • 私有屬性在變數名稱前面加上了「foo」。
  • 受保護屬性在變數名稱前面加上了「*foo」 .

整數屬性轉換:

整數屬性不可訪問,不會出現在轉換後的陣列中。

範例:轉換簡單值物件:

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );

輸出:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}

輸出:

class Foo {
    private $foo;
    protected $bar;
    public $baz;

    public function __construct() {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );

輸出:

array(3) {
  'Foofoo' => int(1)
  '*bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}
輸出:

。轉換具有私有和受保護的複雜對象屬性:

輸出:

  • 如您所見,私有和受保護的屬性存在於轉換後的陣列中,並帶有指定的前綴前綴。
深度鑄造和非公開屬性:請注意,此類型轉換方法不執行深度轉換。要存取非公共屬性,您可能需要明確應用空字節,如官方 PHP 文件中所述。 有關更深入的信息,請參閱連結的資源: PHP 內建類別stdClass:https://www.php.net/manual/en/class.stdclass. php快速PHP物件到陣列轉換部落格文章:https://dereuromark.de/2011/02/03/fast-php-object-to-array-conversion/

以上是如何快速將PHP物件轉換為關聯數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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