假设我有以下PHP代码:

$FooBar = "a string";

然后我需要一个如下所示的函数:

print_var_name($FooBar);

其中打印:

FooBar

有什么办法可以做到这一点吗?这在PHP中是可能的吗?

推荐答案

您可以使用get_defined_vars()来查找一个变量的名称,该变量的值与您试图查找其名称的变量的值相同.显然,这并不总是有效的,因为不同的变量通常有相同的值,但这是我能想到的唯一方法.

edit:get_fined_vars()似乎不能正常工作,它返回‘var’,因为$var在函数本身中使用.$GLOBAL似乎有效,所以我已将其更改为$GLOBAL.

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

    return false;
}

编辑:需要明确的是,在PHP中没有很好的方法可以做到这一点,这可能是因为你不应该这么做.也许有更好的方法来做你想做的事情.

Php相关问答推荐

如果WooCommerce产品具有特定的产品标签,则将元盒添加到管理WooCommerce产品

如何在产品首页的产品标题下显示可变产品的自定义字段

p a/a/p的x路径 Select ,但不是p somethext a链接/a或某些文本/p>

如何发送woocommerce订单跟踪码与短信

Yahoo Finance API文件_GET_CONTENTS 429请求太多

有什么方法可以阻止WordPress主题升级通知吗?

如何在php中生成包含第100秒的时间序列?

返回WooCommerce中的所有已启用变体

在WordPress中从CPT中删除插件

是否有条件判断是否发布了另一个Wordpress页面?

添加不存在的订单元数据以扩展WooCommerce管理订单搜索

显示 woocommerce 中所选变体的属性术语描述

Symfony:从控制器内部调用自定义命令

单个产品页面 WooCommerce 订阅价格字符串的更改

如何从 URL 核心 PHP 中的 API 获取 JSON?

无法在 Laravel 中实例化抽象类 ProductAbstract

如何正确判断 PHP 是否已正确配置为使用 DOMDocument?

为WooCommerce中的Guest用户保存唯一的客户代码到订单中

如果有很多重定向,PHP curl 的行为不像命令行 curl

使用循环和引用而不是递归创建分层/父子数组