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中文網其他相關文章!