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