Gunakan dinamik refleks untuk mendapatkan nilai atribut
Untuk memudahkan tugas penukaran data, pemaju ingin mencari kaedah yang boleh menggunakan parameter rentetan untuk mendapatkan nilai atribut secara langsung melalui refleksi, dengan itu mengelakkan keperluan perbandingan jenis yang jelas dan nama atribut standard.
<:> SOALAN:
Adakah mungkin menggunakan parameter rentetan yang mengandungi nama kelas dan nama atribut untuk mendapatkan nilai atribut?Jawapan: Ya, menggunakan refleks boleh dilaksanakan secara dinamik. Serpihan kod berikut menunjukkan bagaimana untuk mencapai:
Dalam kaedah ini, nilai atribut diperoleh dengan mendapatkan nama atribut yang disediakan oleh refleksi, dan kemudian mengakses nilainya. Sila ambil perhatian bahawa untuk kegunaan sebenar, pengesahan dan rawatan ralat mungkin diperlukan.
cara menggunakan:public static object GetPropValue(object src, string propName) { return src.GetType().GetProperty(propName).GetValue(src, null); }
Untuk menggunakan kaedah ini, anda hanya perlu lulus objek sasaran dan nama atribut yang diperlukan (sebagai rentetan) sebagai parameter. Sebagai contoh, jika anda mempunyai objek yang dipanggil
, ia mempunyai atribut yang dipanggil , anda boleh mengambil nilainya dengan cara berikut:
Kaedah ini menyediakan cara yang mudah dan fleksibel untuk mengakses nilai atribut secara dinamik, tanpa perlu menyemak secara jelas atau nama atribut predetermine. person
Atas ialah kandungan terperinci Bolehkah refleksi secara dinamik mengambil nilai harta menggunakan hanya parameter rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!