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()
<?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 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()
<?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 }