Php/docs/function.get-object-vars

来自菜鸟教程
跳转至:导航、​搜索

get_object_vars

(PHP 4, PHP 5, PHP 7)

get_object_vars返回由对象属性组成的关联数组


说明

get_object_vars ( object $obj ) : array

返回由 obj 指定的对象中定义的属性组成的关联数组。

Note:

在 PHP 4.2.0 之前的版本中,如果在 obj 对象实例中声明的变量没有被赋值,则它们将不会在返回的数组中。而在 PHP 4.2.0 之后,这些变量作为键名将被赋予 null 值。

Example #1 使用 get_object_vars()

<?phpclass 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
 )

参见 get_class_methods()get_class_vars()


参数

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

object isn't an object.

prior to 5.3.0 If the object isn't an object, then

get_object_vars() would return false

prior to 4.2.0 If the variables declared in the class of which the

object is an instance, have not been assigned a value, those will not be returned in the array


范例

Example #2 Use of get_object_vars()

<?phpclass 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
}

参见