比方說,我有一個包含數十個屬性的類的實例。這個類不能被修改或擴展。OOP模式將一種數據格式轉換爲另一種數據格式
我現在需要將一些數據從這個實例傳遞給一個函數。該函數只需要這些屬性中的一部分,並且不能直接使用類的實例(它需要關聯數組),並且還需要一些不存在於實例中的數據。所以我需要將實例轉換爲關聯數組。
比如我需要轉換成這樣:
class Person {
public $id = 123;
public $firstName = "John";
public $lastName = "Something";
public $address;
public $city;
public $zipCode;
// etc.
}
這樣:
array(
'id' => 123,
'name' => 'John Something'
);
我的問題是:是否有任何已知的OOP模式來處理這種轉換?我知道我可以編寫一個簡單的函數來將一種格式轉換爲另一種格式,但我想知道什麼是「正確」的方法,如果可能的話,基本上使用已知的模式。
這聽起來可能超出了主題。但我很好奇你爲什麼把$放在變量名之前。 –
我認爲使用反射迭代對象的屬性是一種很好的通用方法來攻擊這樣的問題。 – EJK
@MichaelArdan它是PHP。 – MrLore