为什么我不能访问PHP DateTime实例的属性?

时间:2016-12-22 00:32:01

标签: php datetime

如果我创建了var minLevelRaw = System.Configuration.ConfigurationManager.AppSettings["minLevel"]; var minLevel = LogLevel.FromString(minLevelRaw); LogManager.GlobalThreshold = minLevel; 类的实例,那么DateTime

vardump()

输出:

<?php
$date = new DateTime;    
var_dump($date);

在这种情况下,var_dump未明确报告object(DateTime)#1 (3) { ["date"]=> string(26) "2016-12-22 00:21:21.022426" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } date的值是公开的,但我对timezone的体验是除非另有报告(即使用像var_dump这样的标签,所有属性都被假定为公共属性 这意味着您应该能够运行像

这样的代码
[private:date]

并且输出应该包含字符串<?php $date = new DateTime; echo $date->timezone; ,但它不包含任何内容(或更具体地说是UTC值)。

我知道这不是使用NULL检索时区的正确方法,但让PHP报告对象具有您无法访问的公共属性似乎违反了对象的基本规则,即它们保留属性 - 如果是公共的 - 您可以访问它们。

为什么DateTime会报告这些属性,但当我尝试访问这些属性时,它们会评估为var_dump

0 个答案:

没有答案