关于PHP,它们之间有什么区别:
发布于 2011-04-13 23:42:08
get_class_vars()
接受class_name get_object_vars()
接受$object变量
它们的功能相似:
get_class_vars()
将公开默认公共变量(如果在类中调用,则为私有/受保护) get_object_vars()
将公开当前公共变量(如果在类对象中调用,则为私有/受保护)
两者都不会公开方法。
发布于 2011-04-13 23:37:24
从get_class_vars
和get_object_vars
手册页面可以看到,get_class_vars
获取类的属性的默认值,而get_object_vars
获取对象的属性的当前值。
此外,get_class_vars
接受一个字符串(即.类名),而get_object_vars
接受一个对象。
class Example
{
public $var = 123;
}
$e = new Example();
$e->var = 456;
var_dump(get_class_vars("Example"));
/*
array(1) {
["var"]=>
int(123)
}
*/
var_dump(get_object_vars($e));
/*
array(1) {
["var"]=>
int(456)
}
*/
发布于 2013-12-08 03:21:47
还有一件事:
get_object_vars()
看不到静态变量,但看到运行时创建的变量!
get_class_vars()
可以看到静态变量,但看不到在运行时创建的新变量,例如。在构造函数中:
public function __construct() {$this->newval = "newval";}
https://stackoverflow.com/questions/5651829
复制相似问题