DateTime对象在没有var_dump的情况下返回NULL

Cai*_*ero 3 php datetime

我在DateTime()类中遇到了一些奇怪的问题.

每次我试试这个:

$object = new DateTime();
var_dump($object->date);
Run Code Online (Sandbox Code Playgroud)

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

$object = new DateTime();
var_dump($object);
var_dump($object->date);
Run Code Online (Sandbox Code Playgroud)

var_dump()给了我正确的答案,我不明白为什么.以前有人看过这个吗?

dec*_*eze 7

它与PHP被迫创建一个完整的对象表示形式有关,当您转储正在更新对象状态的整个对象时,而不是只访问一个单独的属性.

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