get_object_vars

(PHP 4, PHP 5, PHP 7, PHP 8)

get_object_vars返回由對象屬性組成的關聯(lián)數(shù)組

說明

get_object_vars(object $obj): array

返回由 obj 指定的對象中定義的屬性組成的關聯(lián)數(shù)組。

注意:

在 PHP 4.2.0 之前的版本中,如果在 obj 對象實例中聲明的變量沒有被賦值,則它們將不會在返回的數(shù)組中。而在 PHP 4.2.0 之后,這些變量作為鍵名將被賦予 null 值。

示例 #1 使用 get_object_vars()

<?php
class Point2D {
    var 
$x$y;
    var 
$label;

    function 
Point2D($x$y)
    {
        
$this->$x;
        
$this->$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.2333.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()

參數(shù)

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

范例

示例 #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
}

參見