Pendapatan Nama Pembolehubah dalam Templat dengan Refleksi
Dalam pengendalian templat, mungkin wajar untuk menggantikan pemegang tempat penanda secara dinamik dengan nilai berubah. Untuk mencipta templat menggunakan pembolehubah yang disimpan dalam kepingan, anda boleh mendapatkan semula namanya terus daripada kod sumber. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ini tidak boleh dilakukan menggunakan refleksi.
Refleksi membenarkan akses kepada jenis, nilai dan maklumat kaedah pembolehubah, tetapi bukan namanya dalam kod sumber. Ini kerana atur cara yang disusun tidak mengekalkan nama pembolehubah yang digunakan dalam kod sumbernya.
Dalam contoh anda, anda mencipta kepingan sa yang mengandungi nilai rentetan tetapi bukan nama pembolehubah itu sendiri. Oleh itu, menggunakan reflect.TypeOf(v).Name() hanya menyediakan jenis pembolehubah, bukan namanya.
Penyelesaian kepada isu ini ialah menggunakan pendekatan yang berbeza. Daripada menyimpan nilai pembolehubah secara langsung dalam kepingan, pertimbangkan untuk menggunakan peta untuk mengaitkan nama pembolehubah dengan nilainya. Ini membolehkan anda mengakses kedua-dua nama pembolehubah dan nilainya, membolehkan anda melakukan penggantian templat dengan berkesan.
Atas ialah kandungan terperinci Bolehkah Reflection Mendapatkan Nama Pembolehubah daripada Templat Go untuk Penggantian Penanda Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!