首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP: get_class_vars()与get_object_vars()

PHP: get_class_vars()与get_object_vars()
EN

Stack Overflow用户
提问于 2011-04-13 23:34:18
回答 5查看 16.2K关注 0票数 13

关于PHP,它们之间有什么区别:

  1. get_class_vars()
  2. get_object_vars()
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-13 23:42:08

get_class_vars()接受class_name get_object_vars()接受$object变量

它们的功能相似:

get_class_vars()将公开默认公共变量(如果在类中调用,则为私有/受保护) get_object_vars()将公开当前公共变量(如果在类对象中调用,则为私有/受保护)

两者都不会公开方法。

票数 21
EN

Stack Overflow用户

发布于 2011-04-13 23:37:24

get_class_varsget_object_vars手册页面可以看到,get_class_vars获取类的属性的默认值,而get_object_vars获取对象的属性的当前值。

此外,get_class_vars接受一个字符串(即.类名),而get_object_vars接受一个对象。

代码语言:javascript
复制
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)
}
*/
票数 17
EN

Stack Overflow用户

发布于 2013-12-08 03:21:47

还有一件事:

get_object_vars()看不到静态变量,但看到运行时创建的变量!

get_class_vars()可以看到静态变量,但看不到在运行时创建的新变量,例如。在构造函数中:

代码语言:javascript
复制
public function __construct() {$this->newval = "newval";}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5651829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档