2015-09-11 3 views
-1

У меня очень странная проблема. Дело в том, что я не могу получить доступ к чему-либо из переменной $conDat["_RenewalDate1"], если я не использую его var_dump.Не имеют доступа к элементу объекта без 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 
+1

Каков будет результат var_dump? – Mathlight

+2

Он должен вернуть что-то, иначе вы не сможете получить доступ к объекту из NULL – Rizier123

+0

Итак, в первом бите кода var_dump ($ test) возвращает что-либо или это просто второй var_dump, который возвращает что-то (кроме NULL) – mfisher91

ответ

2

$conDat["_RenewalDate1"] - DateTime объект. Вы пытаетесь использовать недокументированные свойство, только когда-либо сделанных доступны благодаря a side effect.

-> дата будучи доступен фактически побочный эффект поддержки var_dump()


Вместо этого используйте format().