可能的重复项:
如何在 PHP 中将变量名作为字符串获取?
例:
这样的事情可以在PHP中实现吗?
$Age = 43;
output_variable_name_and_value($Age);
/*
outputs:
"The requested variable name is Age and its current value is 43";
*/
//If possible, how would the line marked below with ? ? ? ? be?
function output__variable_name_and_value($input)
{
$var_name = get_name_somehow($input); // ? ? ? ?
echo "The requested variable name is {$var_name}
and its current value is {$input}";
}
这是不可能的,很容易。你必须使用$GLOBALS;
function get_variable_name($var) {
foreach($GLOBALS as $k => $v) {
if ($v === $var) {
return $k;
}
}
return false;
}
唯一的缺点是,如果它们都具有相同的值,则可能会返回不同的变量名称。
或者这个,
function varName( $v ) {
$trace = debug_backtrace();
$vLine = file( __FILE__ );
$fLine = $vLine[ $trace[0]['line'] - 1 ];
preg_match( "#''$('w+)#", $fLine, $match );
print_r( $match );
}
我在这里找到的: 如何在 PHP 中将变量名称作为字符串获取?
您可以使用此函数:
function var_name(&$iVar, &$aDefinedVars) {
foreach ($aDefinedVars as $k=>$v)
$aDefinedVars_0[$k] = $v;
$iVarSave = $iVar;
$iVar =!$iVar;
$aDiffKeys = array_keys (array_diff_assoc ($aDefinedVars_0, $aDefinedVars));
$iVar = $iVarSave;
return $aDiffKeys[0];
}
这样称呼它:
var_name($Age, get_defined_vars());
资料来源:http://mach13.com/how-to-get-a-variable-name-as-a-string-in-php
好吧。
您可以使用debug_backtrace找出所谓的output__variable_name_and_value
函数。
然后你知道文件名和行号,所以你可以尝试解析源文件并找出output__variable_name_and_value(
和)
之间的内容。
不过可能是个坏主意!