PHP 类和对象函数

PHP get_class_vars() 函数用于获取给定类的默认属性。

语法

get_class_vars(class)

参数

class 必需。 指定类名。

返回值

返回从当前作用域可见的已声明属性的关联数组,及其默认值。返回的数组包含变量名=>变量值形式的元素。如果出现错误,则返回 false。

示例:get_class_vars() 示例

下面的示例显示了 get_class_vars() 函数的用法。

<?php
class myClass {
  var $var1; //无默认值
  var $var2 = "xyz";
  var $var3 = 100;
  private $var4 = 500;

  //类构造函数
  function __construct() {
    //改变一些属性
    $this->var1 = "foo";
    $this->var2 = "bar";
    return true;
  }
}

//获取默认属性
print_r(get_class_vars('myclass'));
?>

上述代码的输出将是:

Array
(
    [var1] => 
    [var2] => xyz
    [var3] => 100
)

示例:与派生类一起使用

考虑下面使用此函数的示例与派生类。

<?php
class myClass {
  var $var1 = "xyz";
  var $var2 = 100;
  private $var3 = 500;

  //类构造函数
  function __construct() {
    //代码
  }
}

class newClass extends myClass {
  var $var4 = 1000;
  private $var5 = 5000;
}

//获取newClass的默认属性
print_r(get_class_vars('newClass'));
?>

上述代码的输出将是:

Array
(
    [var4] => 1000
    [var1] => xyz
    [var2] => 100
)

示例:get_class_vars() 和作用域行为

考虑再举一个例子,说明使用此函数时的作用域行为。

<?php
function format($array) {
  return implode('|', array_keys($array))."\r\n";
}

class TestCase {
  public $a    = 1;
  protected $b = 2;
  private $c   = 3;

  public static function expose() {
    echo format(get_class_vars(__CLASS__));
  }
}

TestCase::expose();
echo format(get_class_vars('TestCase'));
?>

上述代码的输出将是:

a|b|c
a