Mengakses Pemalar Kelas dengan Nama Tersimpan Pembolehubah
Dalam pengaturcaraan berorientasikan objek, pemalar kelas menyediakan cara yang mudah untuk menentukan nilai yang tidak berubah dalam kelas. Walau bagaimanapun, mengakses pemalar ini menggunakan pembolehubah yang mengandungi nama mereka menimbulkan cabaran.
Pertimbangkan contoh berikut:
<code class="php">class A { const MY_CONST = "value"; } $myVar = "MY_CONST";</code>
Dalam senario ini, cuba mengakses nilai MY_CONST menggunakan diri: :$myVar tidak akan berfungsi kerana ia merujuk kepada sifat statik dan bukannya pemalar.
Nasib baik, terdapat dua kaedah untuk memintas had ini:
Fungsi Malar:
Fungsi pemalar membolehkan akses kepada pemalar yang ditakrifkan melalui pengisytiharan takrif dan kelas. Ia mengambil bentuk pemalar('::'), di mana :: mewakili ruang nama dan constName menentukan nama pemalar.
<code class="php">$c = 'MY_CONST'; echo constant('::' . $c); // Output: value</code>
Kelas Refleksi:
Menggunakan API Refleksi, seseorang boleh mengakses pemalar kelas melalui contoh kelas refleksi.
<code class="php">$ref = new ReflectionClass('A'); $constName = 'MY_CONST'; echo $ref->getConstant($constName); // Output: value</code>
Atas ialah kandungan terperinci Bagaimanakah anda boleh mengakses pemalar kelas dalam PHP menggunakan nama yang disimpan berubah-ubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!