PHP get_mangled_object_vars() 函数返回一个关联数组,其中包含 的所有非静态属性(无论可见性如何)对象。键是成员变量名称,但有一些值得注意的例外:私有变量在变量名称前面添加了类名称,受保护变量在变量名称前面添加了 *。这些前置值的两侧都有 NUL 字节。
语法
get_mangled_object_vars(object)
参数
object | 必填。 指定一个对象实例。 |
返回值
返回一个关联数组,其中包含以下对象的所有属性(无论可见性如何) object。
示例:get_mangled_object_vars() 示例
下面的示例显示了get_mangled_object_vars() 函数的用法。 p>
<?php
class myClass {
private $a = 10;
public $b = 20;
public $c;
protected $d = 30;
static $e = 40;
//类方法
public function test() {
print_r(get_mangled_object_vars($this));
}
}
$myObj = new myClass();
//外部调用
print_r(get_mangled_object_vars($myObj));
//内部调用
$myObj->test();
?>
上述代码的输出将是:
Array
(
[myClassa] => 10
[b] => 20
[c] =>
[*d] => 30
)
Array
(
[myClassa] => 10
[b] => 20
[c] =>
[*d] => 30
)
示例:与派生类对象一起使用
考虑下面使用此函数的示例带有派生类对象。
<?php
class myClass {
private $a = 10;
public $b = 20;
public $c;
protected $d = 30;
static $e = 40;
//类方法
public function test() {
print_r(get_mangled_object_vars($this));
}
}
class newClass extends myClass {
public $f = 50;
private $g;
static $h = 60;
protected $i;
}
$myObj = new newClass();
//外部调用
print_r(get_mangled_object_vars($myObj));
//内部调用
$myObj->test();
?>
上述代码的输出将是:
Array
(
[f] => 50
[newClassg] =>
[*i] =>
[myClassa] => 10
[b] => 20
[c] =>
[*d] => 30
)
Array
(
[f] => 50
[newClassg] =>
[*i] =>
[myClassa] => 10
[b] => 20
[c] =>
[*d] => 30
)