【问题标题】:Have not access to the element of object without var_dump at front [duplicate]在前面没有var_dump的情况下无法访问对象的元素[重复]
【发布时间】:2015-09-11 08:17:05
【问题描述】:

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

使用此代码:

var_dump($conDat["_RenewalDate1"]);

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

我得到了想要的输出。

但没有这一行:

var_dump($conDat["_RenewalDate1"]);

它只是返回 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

【问题讨论】:

  • 那么 var_dump 的输出是什么?
  • 它必须返回一些东西,否则你将无法从 NULL 访问属性
  • 所以在第一段代码中 var_dump($test) 是否返回任何内容,或者只是第二个 var_dump 返回一些内容(NULL 除外)
  • 你能发一个var_dump($conDat)吗?
  • @ТарасКостюк 请编辑问题。

标签: php object var-dump


【解决方案1】:

$conDat["_RenewalDate1"] 是一个 DateTime 对象。您正在尝试使用仅因a side effect. 而可用的无证属性

->日期可用实际上是支持 var_dump() 的副作用


请改用format()

【讨论】:

    猜你喜欢
    • 2014-06-01
    • 1970-01-01
    • 2021-05-01
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    相关资源
    最近更新 更多