Penggabungan Objek PHP yang Cekap
Apabila bekerja dengan objek PHP5 yang tidak mempamerkan hubungan warisan, menggabungkan kandungannya boleh menjadi satu cabaran. Penyelesaian berasaskan subkelas tradisional tidak boleh digunakan dalam senario ini.
Pernyataan Masalah
Pertimbangkan objek berikut:
$objectA->a; $objectA->b; $objectB->c; $objectB->d;
Matlamatnya adalah untuk mendapatkan objek ketiga, $objectC, yang mengandungi semua sifat $objectA dan $objectB.
$objectC->a; $objectC->b; $objectC->c; $objectC->d;
Penyelesaian
Kaedah yang paling berkesan untuk menggabungkan objek ialah menghantarnya ke tatasusunan menggunakan (tatasusunan) dan kemudian menggabungkannya menggunakan array_merge() . Tatasusunan yang digabungkan kemudiannya boleh dilemparkan kembali ke objek menggunakan (objek):
$obj_merged = (object) array_merge((array) $obj1, (array) $obj2);
Teknik ini berfungsi dengan berkesan walaupun objek mempunyai kaedah, seperti yang diuji dalam PHP 5.3 dan 5.6.
Catatan
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Objek PHP dengan Cekap Tanpa Warisan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!