func($name1)
应该返回name1
有可能吗?
答案 0 :(得分:7)
这是一个功能。
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];
}
像这样称呼
$test = "blah";
echo var_name($test, get_defined_vars());
那将打印出“测试”。
我最初发现函数over here你也可以通过遍历get_defined_vars()返回的数组来完成它。这可能更容易理解。
答案 1 :(得分:3)
不,没有办法在PHP中获取变量的名称。
调用函数时,该函数只接收变量的内容,而不是“变量本身” - 这意味着函数无法找到传递给它的变量的名称。
答案 2 :(得分:2)
没有
答案 3 :(得分:2)
好主意?否
你应该做的任何用法?否
概念证明?当然!
<?php
a($test);
function a($x) {
$trace = debug_backtrace();
$file = file($trace[0]['file']);
$line = $file[$trace[0]['line']-1];
var_dump($line); // Prints "a($test);" Do the Stringparsing and your done
}
是的,这通过阅读源文件来获取“简单”,它也可以通过使用名为“bytekit”的php扩展来实现,该扩展允许用户访问php操作码并从那里开始工作。
答案 4 :(得分:1)
答案 5 :(得分:1)
显然, 可能是足够高的疯狂值。
此页面上的评论包括以下几种技巧: http://php.net/manual/en/language.variables.php
lucas dot karisny at linuxmail dot org的答案适用于我的机器: http://www.php.net/manual/en/language.variables.php#49997
因人而异。