print_r () adiciona propriedades a objetos DateTime [duplicados]

Esta questão já tem uma resposta aqui:

Por que não consigo acessar DateTime-> date na classe DateTime do PHP? Isso é um bug? 4 respostas

Considere o seguinte exemplo de código:

$m_oDate = new DateTime('2013-06-12 15:54:25');
print_r($m_oDate);
echo $m_oDate->date;

Desde o PHP 5.3, isso produz (algo como) a seguinte saída:

DateTime Object
(
    [date] => 2013-06-12 15:54:25
    [timezone_type] => 3
    [timezone] => Europe/Amsterdam
)
2013-06-12 15:54:25

No entanto, o seguinte código:

$m_oDate = new DateTime('2013-06-12 15:54:25');
echo $m_oDate->date;

... simplesmente emite um erro:

Notice: Undefined property: DateTime::$date in ...

Porqueprint_r() "adicionar" essas propriedades ao objeto? Note que eles não são definidos como parte doDateTime classe nopágina de manual.

questionAnswers(7)

yourAnswerToTheQuestion