在 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中文网其他相关文章!