回答
get_class_vars()
采取CLASS_NAME get_object_vars()
需要一个$对象变量
它们的作用都类似:
get_class_vars()
会暴露默认的公共变量(或私人/保护,如果调用的类内) get_object_vars()
将暴露当前的公共变量(或私有/受保护,如果在类对象内调用)
都不会公开方法。
所以一个是用于定义(类),另一个用于实例(对象)? – 2011-04-14 02:35:34
完全正确 – ohmusama 2011-04-14 06:29:33
你可以从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)
}
*/
即使世界一两件事:
get_object_vars()
不看静态变量,但他认为在运行时创建瓦尔!
get_class_vars()
看到静态的,但没有看到在运行时创建的新变量,例如。在构造函数中:
public function __construct() {$this->newval = "newval";}
get_class_vars()给你甚至非静态变量,但它们的值在创建对象,如时间服用。初始值。
作为PHP 5.5.9的
我已经注意到,实际上有get_class_vars
和get_object_vars
之间略有差别。
关于PHP Bug Report,我也自己测试过。
这两种方法都返回相同的结果。 但是,您可以通过使用get_object_vars
而不是get_class_vars
来操作对象属性。
考虑下面的示例,
class Foo
{
public $bar = null;
public function __construct() {
$this->bar = new DateTime(); // Now
$this->far = &$this->bar;
}
}
$foo = new Foo();
var_dump($foo);
$vars = get_object_vars($foo);
$vars['bar'] = new DateTime('2014-03-25');
var_dump($foo);
在上面的示例中,您会发现,第二
var_dump
将 已经$foo->bar
修改。注:如果您尝试从
get_object_vars
方法更改为get_class_vars
,你还会发现,$foo->bar
不会 修改。
- 1. 如何获得与get_object_vars
- 2. PHP get_object_vars
- 3. get_object_vars()与强制转换为数组
- 4. 对于非OOP类的get_object_vars()
- 5. get_object_vars返回根据PHP版本
- 6. get_object_vars的非范围敏感替代?
- 7. “get_object_vars()预计参数1是对象,指定字符串”
- 8. 为什么get_object_vars返回受保护的属性?
- 9. 在使用get_object_vars()后从select语句获取变量;
- 10. 使用get_object_vars()更新类的所有公共变量的值
- 11. OpenGL:isampler2DArray与sampler2DArray与sampler3DArray
- 12. PdfpTable与表(与SimpleTable?)
- 13. InsertionSort与InsertionSort与BinaryInsertionSort
- 14. MySQL与PostgreSQL与SSRS
- 15. SortedList与SortedDictionary与Sort()
- 16. JFileChooser与JDialog与FileDialog
- 17. H264与RTP与Facetime
- 18. 与结构与golang
- 19. DataServiceKey与DataKeyProperty与DataServiceEntity
- 20. 休眠与Tomcat与休眠与JBoss
- 21. MD与乳胶到HTML与MathJax与Pandoc
- 22. 与fgets与标准::与fgets - 线由与fgets
- 23. ARKit与ARCore与Vuforia与D'Fusion Mobile与Layar SDK的对比
- 24. 宣言与原型与符号与定义与实现
- 25. 与
- 26. 与
- 27. 与
- 28. 与
- 29. 与
- 30. 与
去用PHP手册有很多描述 – 2011-04-13 15:39:27