Print_r() は DateTime オブジェクトを変更します
Print_r() は DateTime オブジェクトにプロパティを追加し、デバッグ中のイントロスペクションを有効にします。この動作は、PHP 5.3 で導入された内部機能の副作用であり、テキストにダンプされたインスタンスにファントムのパブリック プロパティを割り当てます。
これらのプロパティから発生するエラーを回避するには、代わりにリフレクションを使用してください。ただし、これらのプロパティはクラス内で正式に定義されておらず、それらのデータは将来の PHP バージョンで変更される可能性があるため、これらのプロパティを検索することはお勧めできません。
代わりに、次の API 定義メソッドを使用して必要な情報にアクセスしてください。
<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>
タイムゾーン文字列タイプ (時間オフセット、省略形、または識別子) を記述する内部値である timezone_type プロパティには、PHP API からアクセスできません。
以上がPrint_r() の使用時にファントム プロパティが DateTime オブジェクトに追加されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。