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

Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah sebagai Rentetan dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-12-21 05:35:09559semak imbas

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

Mendapatkan Nama Pembolehubah sebagai Rentetan dalam PHP

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!

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