PHP 类和对象函数

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
)