Rumah >pembangunan bahagian belakang >tutorial php >Bolehkah saya Mengakses Nilai Malar Kelas Secara Dinamik Menggunakan Pembolehubah?

Bolehkah saya Mengakses Nilai Malar Kelas Secara Dinamik Menggunakan Pembolehubah?

Barbara Streisand
Barbara Streisandasal
2024-11-04 03:17:02940semak imbas

Can I Access Class Constant Values Dynamically Using a Variable?

Mendapatkan Nilai Malar Kelas Secara Dinamik

Soalan:

Adakah mungkin untuk mengakses nilai pemalar kelas secara dinamik menggunakan pembolehubah yang mengandungi nama pemalar?

Jawapan:

Ya, terdapat dua kaedah untuk mencapai ini: menggunakan fungsi malar atau pantulan.

Kaedah 1: Fungsi Malar

Fungsi malar boleh digunakan untuk mendapatkan semula nilai kedua-dua pemalar takrif pengguna yang diisytiharkan dengan pemalar takrif dan kelas:

<code class="php">class A
{
    const MY_CONST = 'myval';

    static function test()
    {
        $c = 'MY_CONST';
        return constant('self::'. $c);
    }
}

echo A::test(); // outputs "myval"</code>

Kaedah 2: Kelas Refleksi

Pendekatan yang lebih komprehensif ialah menggunakan refleksi:

<code class="php">$ref = new ReflectionClass('A');
$constName = 'MY_CONST';
echo $ref->getConstant($constName); // outputs "myval"</code>

Atas ialah kandungan terperinci Bolehkah saya Mengakses Nilai Malar Kelas Secara Dinamik Menggunakan Pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn