一尘不染

如何在 PHP 中将变量名作为字符串获取?

php

设我有这个 PHP 代码:

$FooBar = "a string";

然后我需要这样的功能:

print_var_name($FooBar);

打印:

FooBar

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


阅读 116

收藏
2022-06-11

共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 中没有这样做的好方法,这可能是因为你不应该这样做。可能有更好的方法来做你想做的事情。

2022-06-11