PHP オブジェクトの効率的なマージ
継承関係を示さない PHP5 オブジェクトを操作する場合、その内容をマージするのが難しい場合があります。従来のサブクラスベースのソリューションは、このシナリオには適用できません。
問題ステートメント
次のオブジェクトを考慮してください。
$objectA->a; $objectA->b; $objectB->c; $objectB->d;
目標は、次のことを取得することです。 3 番目のオブジェクト $objectC には、$objectA のすべてのプロパティが含まれており、 $objectB.
$objectC->a; $objectC->b; $objectC->c; $objectC->d;
解決策
オブジェクトをマージする最も効率的な方法は、(array) を使用してオブジェクトを配列にキャストし、array_merge() を使用してマージすることです。 。マージされた配列は、(object):
$obj_merged = (object) array_merge((array) $obj1, (array) $obj2);
を使用してオブジェクトにキャストバックできます。この手法は、PHP 5.3 と 5.6 の両方でテストされているように、オブジェクトにメソッドがある場合でも効果的に機能します。
備考
以上が継承せずに PHP オブジェクトを効率的にマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。