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

发表日期:2021-07-01 08:57:11 | 来源: | | 浏览(790) 分类:类/对象 函数

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
 )

参见 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

范例

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

参见

集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。