2016-07-25 57 views
0

我目前正在玩一點點的PHP,並試圖找到一種方法來將一個類轉換爲我可以保存在數據庫中的數據(數組/ JSON /鍵值)。PHP類到陣列/ JSON和回

直到看起來很容易使用get_obj_vars或轉換爲數組。 但是後來我想從數據庫加載數據並將其轉換回之前的類,以便我可以繼續使用類格式的數據。

例子:

class TestClass { 
    private $name; 
    private $number; 
    private $testClass2; 
    /* getter + setter */ 
} 

class TestClass2 { 
    private $name; 
    private $number; 
    /* getter + setter */ 
} 

$testclass = new TestClass(); 
$testclass2 = new TestClass2(); 
$testclass2->setName("Class2"); 
$testclass2->setNumber(42); 

$testclass->setName("MyName"); 
$testclass->setNumber(23); 
$testclass->setTestClass2($testclass2); 

現在我想$的TestClass轉換的東西,我可以在數據庫中保存的「鍵 - 值表」。之後,我想用數據庫中的給定數據重新創建類。

+0

如果它至少部分「似乎很容易」,你嘗試過什麼? – Roope

回答

1

我想你要尋找的是如何在PHP序列化反序列化數據。

試着看一下:How to use php serialize() and unserialize()

+0

是啊,這看起來不錯。有沒有一種方法可以定義反序列化方法的返回類型?所以我的IDE可以自動填充方法名稱:)。 – inf3ction

+0

不確定您的IDE是否支持它 - 您必須檢查文檔。通常在IntelliJ(PHP Storm)中,返回類型是使用doc塊中的@return註釋指定的。通過指定正確的類型,IDE應該選擇正確的類方法來自動完成。希望有所幫助! –

+0

是的,我當然可以添加@return註釋。但那是靜態的,我想動態地定義返回類型。如果我反序列化CLASS A我想定義返回類型爲CLASS A.如果我反序列化CLASS B我想定義返回類型爲CLASS B.否則我必須爲每個類定義一個具有等效返回類型的方法。 – inf3ction