Maison > Article > développement back-end > Pourquoi les propriétés fantômes sont-elles ajoutées aux objets DateTime lors de l'utilisation de Print_r() ?
Print_r() modifie les objets DateTime
Print_r() ajoute des propriétés aux objets DateTime, permettant l'introspection pendant le débogage. Ce comportement, un effet secondaire de la fonctionnalité interne introduite dans PHP 5.3, attribue des propriétés publiques fantômes aux instances transférées dans du texte.
Pour éviter les erreurs résultant de ces propriétés, utilisez plutôt la réflexion. Cependant, il n'est pas conseillé de rechercher ces propriétés car elles ne sont pas officiellement définies dans la classe et leurs données peuvent changer dans les futures versions de PHP.
Accédez plutôt aux informations souhaitées via les méthodes définies par l'API suivantes :
<code class="php">// $obj->date $obj->format('Y-m-d H:i:s'); // $obj->timezone $obj->getTimezone()->getName(); // or... $obj->getTimezone()->getOffset(); // or... $obj->getTimezone()->listAbbreviations();</code>
La propriété timezone_type, une valeur interne décrivant le type de chaîne de fuseau horaire (décalage horaire, abréviation ou identifiant), n'est pas accessible via l'API PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!