PHP で、同じクラスの 2 つのオブジェクトが与えられた場合、その 2 つのオブジェクトを 1 つのオブジェクトにマージするにはどうすればよいでしょうか?以下の記事ではPHPで2つのオブジェクトを結合する方法を紹介しますので、ご参考になれば幸いです。 [ビデオチュートリアルの推奨: PHP チュートリアル]
方法 1: 最初にオブジェクトをデータ配列に変換し、次に使用しますarray_merge( ) 関数を使用してマージし、最後にマージされたデータを stdClass オブジェクトに変換します。
注: array_merge() を使用してオブジェクトを結合すると、引数 1 の配列要素は引数 2 の配列要素によって上書きされます。 argument2 の配列に null 値がある場合、最終オブジェクト内の結果の要素が無効になる可能性があります。
例:
<?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); ?>
出力:
方法 2:元のクラスの新しいオブジェクトを作成し、 use foreach ループは、両方のオブジェクトのすべてのプロパティをこの新しいオブジェクトに割り当てます。
説明: これは 2 つのオブジェクトをマージするシンプルでクリーンな方法です。
例:
<?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, 'demo'); var_dump($obj_merged); ?>
出力:
上記はこの記事の全内容です。皆様のお役に立てば幸いです。学ぶ 。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !
以上がPHP で 2 つのオブジェクトをマージするにはどうすればよいですか? (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。