get_object_vars
(PHP 4, PHP 5, PHP 7, PHP 8)
get_object_vars — 返回由對像屬性組成的關聯陣列
說明
   get_object_vars(object 
  $obj): array
   返回由 obj 
   指定的對象中定義的屬性組成的關聯陣列。
  
注意:
在 PHP 4.2.0 之前的版本中,如果在
obj對像實例中聲明的變數沒有被賦值,則它們將不會在返回的陣列中。而在 PHP 4.2.0 之後,這些變數作為鍵名將被賦予null值。
示例 #1 使用 get_object_vars()
<?php
class Point2D {
    var $x, $y;
    var $label;
    function Point2D($x, $y)
    {
        $this->x = $x;
        $this->y = $y;
    }
    function setLabel($label)
    {
        $this->label = $label;
    }
    function getPoint()
    {
        return array("x" => $this->x,
                     "y" => $this->y,
                     "label" => $this->label);
    }
}
// "$label" is declared but not defined
$p1 = new Point2D(1.233, 3.445);
print_r(get_object_vars($p1));
$p1->setLabel("point #1");
print_r(get_object_vars($p1));
?>
以上例程會輸出:
 Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] =>
 )
 Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] => point #1
 )
參數
- 
object
- 
      An object instance. 
返回值
   Returns an associative array of defined object accessible non-static properties 
   for the specified object in scope. If a property have 
   not been assigned a value, it will be returned with a null value.
  
更新日誌
| 版本 | 說明 | 
|---|---|
| 5.3.0 | This function now returns NULL if the objectisn't an object. | 
| prior to 5.3.0 | If the objectisn't an object, then 
        get_object_vars() would returnfalse | 
| prior to 4.2.0 | If the variables declared in the class of which the objectis an instance, have not been assigned a
        value, those will not be returned in the array | 
範例
示例 #2 Use of get_object_vars()
<?php
class foo {
    private $a;
    public $b = 1;
    public $c;
    private $d;
    static $e;
   
    public function test() {
        var_dump(get_object_vars($this));
    }
}
$test = new foo;
var_dump(get_object_vars($test));
$test->test();
?>
以上例程會輸出:
array(2) {
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
}
array(4) {
  ["a"]=>
  NULL
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
  ["d"]=>
  NULL
}