一尘不染

如何在PHP中以字符串形式获取变量名?

php

说我有这个PHP代码:

$FooBar = "a string";

然后,我需要一个这样的功能:

print_var_name($FooBar);

打印:

FooBar

任何想法如何实现这一目标?在PHP中甚至有可能吗?


阅读 616

收藏
2020-05-26

共1个答案

一尘不染

您可以使用get_defined_vars()来查找与您要查找其名称的变量具有相同值的变量的名称。显然,这并不总是可行的,因为不同的变量通常具有相同的值,但这是我想到的唯一方法。

编辑:get_defined_vars()似乎不能正常工作,它返回’var’,因为在函数本身中使用了$ var。$
GLOBALS似乎有效,因此我将其更改为该值。

function print_var_name($var) {
    foreach($GLOBALS as $var_name => $value) {
        if ($value === $var) {
            return $var_name;
        }
    }

    return false;
}

编辑:要明确,在PHP中没有好的方法可以这样做,这可能是因为您不必这样做。可能有更好的方法来做您想做的事情。

2020-05-26