DateTime对象返回NULL,没有var_dump


DateTime object returning NULL without var_dump

我有一些奇怪的问题与DateTime()类。

每次我尝试这个:

$object = new DateTime();
var_dump($object->date);

var_dump()返回NULL,但是如果我这样做:

$object = new DateTime();
var_dump($object);
var_dump($object->date);

both var_dump()给了我正确的答案,我不知道为什么。有人看过这个吗?

这与PHP被迫创建一个完整的对象表示有关,当你转储整个对象时,恰好更新对象状态,而不是你只访问一个单独的属性。

更重要的一点是,你根本没有访问DateTime::$date的任何业务。这是一个未记录的内部实现细节,您不应该在任何地方使用它。如果要输出日期,请使用DateTime::format或其他公共接口方法之一。