PHP如何合併兩個對象?(代碼示例)

2019-11-01     科技i關注

在PHP中,如果給定兩個相同類的對象,如何將兩個對象合併為單個對象?下面本篇文章就來給大家介紹PHP中合併兩個對象的方法,希望對大家有所幫助。【視頻教程推薦:PHP教程】



方法一:先將對象轉換為數據數組,然後使用array_merge()函數進行合併,最後將合併後的數據轉換為stdClass對象。

說明:在使用array_merge()合併對象時,argument1中的數組元素將被argument2中的數組元素覆蓋。如果argument2中的數組具有空值,則這可能使最終對象中的結果元素無效。

示例:

class demo {

// 空類

}

$objectA = new demo();

$objectA->a = 1;

$objectA->b = 2;

$objectA->d = 3;

$objectB = new demo();

$objectB->d = 4;

$objectB->e = 5;

$objectB->f = 6;

$obj_merged = (object) array_merge(

(array) $objectA, (array) $objectB);

var_dump($obj_merged);

?>

輸出:

方法二:創建原始類的新對象,並使用foreach循環將這兩個對象的所有屬性分配給此新對象。

說明:這是一種簡單而乾淨的合併兩個對象的方法。

示例:

class demo {

// 空類

}

$objectA = new demo();

$objectA->A = 1;

$objectA->B = 2;

$objectA->C = 3;

$objectA->D = 4;

$objectA->E = 5;

$objectB = new demo();

$objectB->D = 6;

$objectB->E = 7;

$objectB->F = 8;

// 用於轉換給定對象類的函數

function convertObjectClass($objectA, $objectB, $final_class) {

$new_object = new $final_class();

// 初始化類屬性

foreach($objectA as $property => $value) {

$new_object->$property = $value;

}

foreach($objectB as $property => $value) {

$new_object->$property = $value;

}

return $new_object;

}

$obj_merged = convertObjectClass($objectA,$objectB, 'demo');

var_dump($obj_merged);

?>

輸出:

以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以關注相關教程欄目!!!

以上就是PHP如何合併兩個對象?(代碼示例)的詳細內容,更多請關注其它相關文章!

更多技巧請《轉發 + 關注》哦!

文章來源: https://twgreatdaily.com/zh-tw/YjG3I24BMH2_cNUgEwFS.html