通常在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('Jack', 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 )
想法分析:
先將物件進行json_encode處理為json字串。
將轉換後json字串進行json_decode處理。
json_decode(json_encode($obj),true);
總結:
優點:簡單又快速。
缺點:會消耗double倍的記憶體。
正確的Get姿勢:
#物件本身佔記憶體小時,可以直接使用。
物件本身佔記憶體大的時候(如幾千筆記錄組成資料集物件),佔用兩倍的記憶體可能會造成超出php的記憶體限制,出現異常。
#以上是php物件如何轉為陣列的黑色技術詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!