在 PHP 中,以字串形式存取變數名稱在各種情況下都非常有用。這是一個潛在的解決方案:
提供的程式碼片段示範了一個名為varName() 的函數,該函數檢索傳遞的變數的名稱:
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);
此函數利用PHP 的debug_backtrace() 來取得呼叫函數的追蹤。然後,它會讀取與追蹤關聯的原始碼文件,並使用 file(__FILE__) 提取包含函數呼叫的行。
要提取變數名稱,它使用正規表示式來匹配變數的名稱,該名稱必須以美元符號 ($) 開頭,後面跟著單字字元。
這是所提供的函數的輸出變數:
Array ( [0] => $foo [1] => foo ) Array ( [0] => $bar [1] => bar ) Array ( [0] => $baz [1] => baz )
雖然此解決方案提供了一種以字串形式獲取變數名稱的方法,但它有局限性,可能並不適合所有用例。仔細考慮在程式碼中提取變數名稱的需要,並在必要時探索替代方法。
以上是如何取得 PHP 變數的字串名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!