首頁  >  文章  >  後端開發  >  PHP如何合併兩個物件? (程式碼範例)

PHP如何合併兩個物件? (程式碼範例)

青灯夜游
青灯夜游原創
2019-03-12 14:06:1411763瀏覽

在PHP中,如果給定兩個相同類別的對象,如何將兩個物件合併為單一物件?以下這篇文章就來跟大家介紹PHP中合併兩個物件的方法,希望對大家有幫助。 【影片教學推薦:PHP教學

PHP如何合併兩個物件? (程式碼範例)

#方法一:先將物件轉換為資料數組,然後再使用array_merge( )函數進行合併,最後將合併後的資料轉換為stdClass物件。

說明:在使用array_merge()合併物件時,argument1中的陣列元素將會被argument2中的陣列元素覆寫。如果argument2中的陣列具有空值,則這可能會使最終物件中的結果元素無效。

範例:

<?php 
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); 
  
?>

輸出:

PHP如何合併兩個物件? (程式碼範例)

#方法二:建立原始類別的新對象,並使用foreach迴圈將這兩個物件的所有屬性指派給此新物件。

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

範例:

<?php 
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, &#39;demo&#39;); 
          
var_dump($obj_merged); 
  
?>

輸出:

PHP如何合併兩個物件? (程式碼範例)

#以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

以上是PHP如何合併兩個物件? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn