> 文章列表 > php get_object_vars

php get_object_vars

php get_object_vars

介绍get_object_vars()

在PHP中,使用get_object_vars()可以获取对象属性值,返回一个包含对象所有属性键值对的数组。

使用get_object_vars()

通过get_object_vars(),可以方便地获取一个对象的所有属性值,可以用在对象序列化、属性复制等场合。

使用get_object_vars()的语法为:

$obj_vars = get_object_vars($object);

其中,$object表示要获取属性值的对象,其类型必须为对象。如果传入的参数不是对象,则会返回false。

示例

以下示例演示了如何通过get_object_vars()获取对象属性值:

class Person {    public $name;    protected $age;    private $height;        function __construct($name, $age, $height) {        $this->name = $name;        $this->age = $age;        $this->height = $height;    }}// 创建对象$person = new Person('Tom', 18, 180);// 获取属性值$obj_vars = get_object_vars($person);// 输出结果print_r($obj_vars);输出结果如下:Array (    [name] => Tom    [age:protected] => 18    [height:Person:private] => 180)

可以看到,get_object_vars()返回了一个包含对象属性键值对的关联数组,其中,属性名为键,属性值为值。需要注意的是,由于PHP不支持直接访问对象的protected和private属性,因此在打印结果时,属性名前面会加上访问修饰符。

注意事项

需要注意的是,get_object_vars()只能获取对象的属性值,而不能获取对象的方法。如果要获取对象的所有成员,包括属性和方法,可以使用ReflectionClass类。

此外,get_object_vars()返回的是一个包含对象属性键值对的数组,也就是说,只包含属性值,不包含属性名。如果需要获取属性名,可以通过array_keys()函数获取:

$obj_vars = get_object_vars($person);$keys = array_keys($obj_vars);print_r($keys);输出结果如下:Array (    [0] => name    [1] => age    [2] => height)

总结

使用get_object_vars()可以方便地获取对象的属性值,需要注意的是,仅能获取属性值,且获取的结果中不包含私有属性名。