首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP get_object_vars() 函數用法詳解:取得物件屬性陣列

     編輯:PHP 綜合知識

get_object_vars() 回傳物件所有可見屬性組成的關聯陣列,鍵為屬性名,值為屬性值。適用於物件序列化、除錯輸出、屬性遍歷等場景。

語法與回傳值

array get_object_vars(object $object)

回傳關聯陣列,包含 public、protected(在類別內部呼叫時)、private(在定義該屬性的類別內部呼叫時)屬性。

基本範例

class Person {
    public $name = "王美人";
    public $age = 25;
    public $birth;
}
$p = new Person();
print_r(get_object_vars($p));

輸出:

Array (
    [name] => 王美人
    [age] => 25
    [birth] => 
)

進階應用:結合介面實作通用 toArray()

interface Arrayable {
    public function toArray();
}

class User implements Arrayable {
    public $id;
    public $name;
    protected $email;
    private $password;

    public function toArray() {
        return get_object_vars($this); // 類別內部可見 protected/private
    }
}

$user = new User();
$user->id = 1;
$user->name = "張三";
$user->email = "zhang@example.com"; // 假設有 setter
$user->password = "secret";
print_r($user->toArray());

輸出包含所有四個屬性,因在類別內部呼叫。

注意事項

  • 靜態屬性**不會**被包含
  • 未初始化的屬性值為 null
  • 外部呼叫僅取得 public 屬性
  • PHP 7.2+ 棄用對非物件呼叫,需確保參數為物件
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved