Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah PHP sebagai Rentetan?

Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah PHP sebagai Rentetan?

Barbara Streisand
Lepaskan: 2024-12-25 00:53:12
asal
162 orang telah melayarinya

How Can I Retrieve a PHP Variable's Name as a String?

Pendapatan Nama Pembolehubah dalam PHP

Mendapatkan semula nama pembolehubah sebagai rentetan boleh menjadi teknik yang berguna dalam senario tertentu. Walaupun PHP tidak menyokong fungsi ini secara langsung, adalah mungkin untuk mencapai hasil yang diingini menggunakan penyelesaian kreatif.

Dalam kod PHP yang diberikan, kami mempunyai pembolehubah bernama $FooBar diperuntukkan kepada nilai rentetan. Tugasnya ialah untuk mencipta fungsi dipanggil print_var_name() yang mencetak nama pembolehubah sebagai "FooBar" apabila melepasi pembolehubah.

Penyelesaian yang dicadangkan menggunakan fungsi debug_backtrace() untuk menganalisis tindanan panggilan. Ia mengenal pasti baris kod di mana fungsi itu digunakan dan mendapatkan semula baris kod yang sepadan daripada fail sumber. Menggunakan ungkapan biasa, fungsi mengekstrak nama pembolehubah daripada baris.

function varName($v) {
    $trace = debug_backtrace();
    $vLine = file(__FILE__);
    $fLine = $vLine[$trace[0]['line'] - 1];
    preg_match("#\$(\w+)#", $fLine, $match);
    print_r($match);
}
Salin selepas log masuk

Penyelesaian ini berfungsi dengan memanfaatkan maklumat yang tersedia dalam timbunan panggilan dan kod sumber. Ia membolehkan kami mendapatkan semula nama pembolehubah yang dikaitkan dengan nilai yang dihantar ke fungsi print_var_name(). Walau bagaimanapun, ia menganggap bahawa nama pembolehubah ialah satu-satunya pembolehubah dalam baris tempat fungsi dipanggil, yang mungkin tidak selalu berlaku dalam senario kod kompleks.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah PHP sebagai Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan