型別轉換與轉換stdClass 物件
在PHP 中,專門使用的儲存系統傳回stdClass 對象,這對將它們轉換為完整的stdClass 物件提出了挑戰-特定類別的成熟物件。本文探討了實現這種轉換的可行性。
有限轉換的型別雜耍
PHP 的型別雜耍機制可以透過括號強制轉換將 stdClass 物件轉換為特定型別。不過,這僅限於基本類型,如整數、布林值、浮點數、字串、陣列和物件。
映射和物件複製
轉換 stdClass 物件到特定類別的物件中,需要映射或複製方法。可以建立映射函數來將 stdClass 屬性轉換為所需的類別屬性。或者,OOP 中的 __clone() 方法可用於建立具有相同屬性的不同類別的物件。
Hackish Approach: Serialization Trickery
A more非常規方法涉及改編將陣列轉換為特定類別的物件的程式碼片段。透過操作 stdClass 物件的序列化數據,然後將其反序列化,結果實際上是所需類別的實例。但是,由於潛在的副作用,應謹慎使用此方法。
物件轉換範例程式碼
function objectToObject($instance, $className) { return unserialize(sprintf( 'O:%d:"%s"%s', strlen($className), $className, strstr(strstr(serialize($instance), '"'), ':') )); }
透過傳遞 stdClass 物件和所需的類別名稱作為參數,該函數傳回指定類別的物件。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3