无法访问前面没有 var_dump 的对象元素

Have not access to the element of object without var_dump at front

我遇到了一个非常奇怪的问题。问题是,我无法从变量 $conDat["_RenewalDate1"] 访问任何内容,除非我预先使用它的 var_dump

使用此代码:

var_dump($conDat["_RenewalDate1"]);

$test = $conDat["_RenewalDate1"] -> date;
var_dump($test);

我得到了想要的输出。

但没有这一行:

var_dump($conDat["_RenewalDate1"]);

它只是 returns NULL。

这个奇怪问题的原因可能是什么?

附加信息:

此代码:

echo "first var_dump: <br />";
var_dump($conDat["_RenewalDate1"]);

$renewalDate1 = $conDat["_RenewalDate1"] -> date;
echo "<br />second var_dump: <br />";
var_dump($renewalDate1);

输出:

first var_dump: 
object(DateTime)#47 (3) { 
    ["date"] => string(26) "2015-10-11 00:00:00.000000" 
    ["timezone_type"] => int(3) 
    ["timezone"] => string(3) "UTC" 
} 
second var_dump: 
string(26) "2015-10-11 00:00:00.000000"

还有这个:

echo "first var_dump: <br />";
// var_dump($conDat["_RenewalDate1"]);

$renewalDate1 = $conDat["_RenewalDate1"] -> date;
echo "<br />second var_dump: <br />";
var_dump($renewalDate1);

输出:

first var_dump: 

second var_dump: 
NULL

$conDat["_RenewalDate1"] 是一个 DateTime object. You're attempting to use an undocumented property that is only ever made available due to a side effect.

->date being available is actually a side-effect of support for var_dump()


改用format()