Dalam PHP, mendapatkan semula nama pembolehubah sebagai rentetan boleh menjadi tugas yang pelik. Pertimbangkan kod berikut:
$FooBar = "a string";
Untuk mengekstrak nama pembolehubah, kita biasanya boleh menggunakan fungsi seperti ini:
print_var_name($FooBar);
Menjangkakan fungsi untuk mengeluarkan "FooBar", kita menghadapi dilema: PHP secara asalnya tidak mempunyai kaedah yang mudah untuk mengakses nama pembolehubah sebagai rentetan.
Walau bagaimanapun, a penyelesaian memang wujud. Walaupun ia mungkin bukan penyelesaian yang paling cekap, ia menyediakan cara untuk mendapatkan semula nama pembolehubah di bawah syarat khusus tertentu:
<?php function varName($v) { $trace = debug_backtrace(); $vLine = file(__FILE__); $fLine = $vLine[$trace[0]['line'] - 1]; preg_match("#\$(\w+)#", $fLine, $match); print_r($match); } $foo = "knight"; $bar = array(1, 2, 3); $baz = 12345; varName($foo); varName($bar); varName($baz); ?>
Fungsi ini, varName(), beroperasi dengan menghuraikan baris yang memanggilnya, mencari hujah diluluskan ke dalam panggilan fungsi. Walaupun ia boleh disesuaikan untuk mengendalikan berbilang hujah, adalah penting untuk ambil perhatian bahawa penyelesaian ini mempunyai hadnya. Untuk senario yang lebih kompleks, penyelesaian alternatif mungkin terbukti lebih sesuai. Namun begitu, ia menawarkan kaedah untuk mendapatkan semula nama pembolehubah dalam PHP untuk kes penggunaan terhad.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah sebagai Rentetan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!