Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mendapatkan Pemalar Kelas dalam PHP?

Bagaimana untuk Mendapatkan Pemalar Kelas dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-11-17 09:51:03202semak imbas

How to Retrieve Class Constants in PHP?

Mendapatkan Definisi Malar daripada Kelas PHP

Dalam senario tertentu, adalah perlu untuk mendapatkan semula senarai pemalar yang ditakrifkan dalam kelas PHP. Ini mungkin berguna terutamanya apabila introspeksi diperlukan untuk penjanaan atau analisis kod dinamik. Fungsi get_defined_constants() malangnya, tidak memberikan maklumat khusus untuk kelas individu.

Menggunakan Refleksi untuk Pendapatan Malar

Untuk menangani had ini, Reflection boleh digunakan. Objek ReflectionClass menyediakan akses kepada metadata kelas, termasuk pemalar yang ditentukan.

class Profile {
    const LABEL_FIRST_NAME = "First Name";
    const LABEL_LAST_NAME = "Last Name";
    const LABEL_COMPANY_NAME = "Company";
}

$refl = new ReflectionClass('Profile');
$constants = $refl->getConstants();

Kaedah getConstants() mengembalikan tatasusunan yang mengandungi semua pemalar yang diisytiharkan dalam kelas.

Output :

Array
(
    'LABEL_FIRST_NAME' => 'First Name',
    'LABEL_LAST_NAME' => 'Last Name',
    'LABEL_COMPANY_NAME' => 'Company'
)

Menyesuaikan Format Output

Jika format output tertentu dikehendaki, metadata kelas boleh diproses selanjutnya.

Mendapatkan Nama Malar:

$constantNames = array_keys($constants);

Output:

Array
(
    'LABEL_FIRST_NAME',
    'LABEL_LAST_NAME',
    'LABEL_COMPANY_NAME'
)

Mendapatkan Nama Malar Berkelayakan Penuh:

$fullyQualifiedConstantNames = array();
foreach ($constants as $name => $value) {
    $fullyQualifiedConstantNames[] = 'Profile::' . $name;
}

Output:

Array
(
    'Profile::LABEL_FIRST_NAME',
    'Profile::LABEL_LAST_NAME',
    'Profile::LABEL_COMPANY_NAME'
)

Mendapatkan Nama dan Nilai Malar:

$constantNamesWithValues = array();
foreach ($constants as $name => $value) {
    $constantNamesWithValues['Profile::' . $name] = $value;
}

Output:

Array
(
    'Profile::LABEL_FIRST_NAME' => 'First Name',
    'Profile::LABEL_LAST_NAME' => 'Last Name',
    'Profile::LABEL_COMPANY_NAME' => 'Company'
)

Dengan memanfaatkan Reflection, pengaturcara boleh mendapatkan dan memanipulasi maklumat dengan mudah tentang pemalar yang ditakrifkan dalam kelas PHP, membolehkan pelbagai fleksibiliti untuk penjanaan kod, analisis dan operasi lain.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Pemalar Kelas dalam PHP?. 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