(PHP 4, PHP 5, PHP 7, PHP 8)
get_object_vars — 返回由对象属性组成的关联数组
$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
 )
objectAn 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
}