函数名称:get_mangled_object_vars()
适用版本:PHP 7.4.0及以上版本
函数描述:get_mangled_object_vars() 函数返回一个关联数组,其中包含对象的所有属性和对应的值,包括私有属性。与内置的 get_object_vars() 函数不同的是,get_mangled_object_vars() 函数也能获取到以双下划线开头的私有属性。
用法:
get_mangled_object_vars ( object $object ) : array
参数:
- $object:必需,要获取属性的对象。
返回值:
- 返回一个包含对象属性及其对应值的关联数组。
示例:
class MyClass {
public $publicVar = 'Public Variable';
private $__privateVar = 'Private Variable';
}
$obj = new MyClass();
$vars = get_mangled_object_vars($obj);
var_dump($vars);
输出:
array(2) {
["publicVar"]=>
string(15) "Public Variable"
["__privateVar"]=>
string(15) "Private Variable"
}
在上面的示例中,我们定义了一个名为 MyClass 的类,其中包含一个公共属性 $publicVar 和一个私有属性 $__privateVar。然后,我们创建了一个 MyClass 的对象 $obj,并使用 get_mangled_object_vars() 函数获取了对象的所有属性及其对应的值。最后,我们使用 var_dump() 函数打印了获取到的属性数组。
需要注意的是,get_mangled_object_vars() 函数只能获取到以双下划线开头的私有属性,这是因为在 PHP 中,私有属性会被编译器进行名称修饰,以防止与其他类的私有属性发生冲突。