將stdClass 物件轉換為自訂類別
提供的程式碼片段強調了使用返回stdClass 物件的第三方系統時面臨的挑戰。雖然將物件轉換為陣列並將其傳遞給建構函數是一個可行的解決方案,但它引發了有關恢復原始物件的類別的問題。
PHP 提供了類型雜耍功能,允許在不同資料類型之間進行轉換。但是,這些轉換僅限於原始類型,例如整數、布林值、浮點數和字串。
自訂映射
將stdClass 物件轉換為自訂物件的一種方法class 的作用是建立一個映射器,將物件的屬性轉換為目標類的屬性。這涉及為每個屬性定義規則並確保將正確的資料指派給新實例。
Hackish Solution
另一種方法,儘管不建議用於生產,就是使用「arrayToObject」函數。此函數採用陣列作為輸入並產生表示指定類別的實例的序列化字串。然後將序列化的字串反序列化到目標類別中。
物件到物件的轉換
「objectToObject」轉換的概念反映了「arrayToObject」的概念。這裡,輸入是現有對象,輸出是不同類別的實例。採用與操作序列化字串相同的方法,有效地將物件轉換為所需的類別。
結論
雖然提供的解決方案提供了將 stdClass 物件轉換為自訂類別時,必須考慮每種方法的局限性和潛在缺點。自訂映射提供了更強大且可維護的解決方案,而駭客「arrayToObject」函數很容易出現意外行為,應謹慎使用。
以上是如何在 PHP 中優雅地將 stdClass 物件轉換為自訂類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!