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); }
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!