回答
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. OOP PHP - get_object_vars
- 4. get_object_vars返回NULL
- 5. get_object_vars()与强制转换为数组
- 6. ReflectionObject与转换为数组与get_object_vars检索公共变量
- 7. 对于非OOP类的get_object_vars()
- 8. 为什么我不能使用$这与get_object_vars
- 9. get_object_vars返回根据PHP版本
- 10. Php get_object_vars调用子类不工作
- 11. get_object_vars的非范围敏感替代?
- 12. 为什么不能通过foreach或get_object_vars访问PHP mysqli_stmt属性?
- 13. 为什么get_object_vars返回受保护的属性?
- 14. PHP函数'get_object_vars`不从继承的方法
- 15. “get_object_vars()预计参数1是对象,指定字符串”
- 16. 使用get_object_vars()更新类的所有公共变量的值
- 17. 在使用get_object_vars()后从select语句获取变量;
- 18. Symfony2与KnpGaufrette与S3与LiipImagine
- 19. 与A2X与ZIP
- 20. VHDL与选与“和”
- 21. OpenGL:isampler2DArray与sampler2DArray与sampler3DArray
- 22. QBoxLayout与QMainWindow与QWidget
- 23. PdfpTable与表(与SimpleTable?)
- 24. InsertionSort与InsertionSort与BinaryInsertionSort
- 25. ScalatraServlet与AkkaSupport与GZipSupport
- 26. JFileChooser与JDialog与FileDialog
- 27. SortedList与SortedDictionary与Sort()
- 28. H264与RTP与Facetime
- 29. DataServiceKey与DataKeyProperty与DataServiceEntity
- 30. MySQL与PostgreSQL与SSRS
去用PHP手册有很多描述 – 2011-04-13 15:39:27