首頁  >  文章  >  後端開發  >  php物件如何轉為陣列的黑色技術詳解

php物件如何轉為陣列的黑色技術詳解

黄舟
黄舟原創
2017-10-21 11:24:031210瀏覽

    通常在php中,想把物件處理成陣列是需要花點精力的。
    但今天在這裡,我告訴你一個so easy的黑色技術來解決這個問題。

<?php
/**
 * Created by PhpStorm.
 * User: zrj
 * Date: 17-10-20
 * Time: 下午8:08
 */
declare(strict_types=1);//开启强类型模式

class Person
{
    public $name;
    public $age;

    public function __construct(string $name,int $age)
    {
        $this->name = $name;
        $this->age = $age;
    }
}

$jack = new Person(&#39;Jack&#39;, 18);
echo print_r($jack, true);
echo "<p>";

//对象转数组
$jack = json_decode(json_encode($jack), true);
echo print_r($jack, true);

來看看結果:

Person Object
(
    [name] => Jack
    [age] => 18
)

Array
(
    [name] => Jack
    [age] => 18
)

想法分析:

  1. 先將物件進行json_encode處理為json字串。

  2. 將轉換後json字串進行json_decode處理。

    json_decode(json_encode($obj),true);

總結:

    優點:簡單又快速。

    缺點:會消耗double倍的記憶體。

正確的Get姿勢:  

#物件本身佔記憶體小時,可以直接使用。

物件本身佔記憶體大的時候(如幾千筆記錄組成資料集物件),佔用兩倍的記憶體可能會造成超出php的記憶體限制,出現異常。

#

以上是php物件如何轉為陣列的黑色技術詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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