php - 在 PHP 中使用变量 NAME 作为值

标签 php variables introspection

不知道如何在不漫谈 C 语言预处理器的情况下提出这个问题,但我会尝试:

PHP 中有没有办法将变量的名称用作字符串或值。

这样而不是像这样调用函数,

$somevar = 'whatever';

fun('somevar', $somevar);

你可以这样调用它:

fun(<magic:$somevar>, $somevar);

甚至,我敢说,像这样:

fun($somevar);

并且 fun() 本身会推导出变量的值('whatever')和名称('somevar')。 (在 C 语言中,可以使用预处理器 #define 来完成。)

上面的“magic”当然是我正在寻找的 PHP 中魔法语法的占位符,它将帮助我做到这一点。我想它可以用 eval() 以某种方式制作?但人们一直告诉我不要使用 eval。

有人暗示内省(introspection)可能会起到作用。欢迎任何线索。

最佳答案

试试这个

function var_name(&$var, $scope=0)
{
    $old = $var;
    if (($key = array_search($var = 'unique'.rand().'value', !$scope ? $GLOBALS : $scope)) && $var = $old) return $key;  
}

关于php - 在 PHP 中使用变量 NAME 作为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12294748/

相关文章:

php - Python中用变量修改参数名

html - 将表单输入值传递给操作

python - Python中的动态类实例化

c - 线程名称超过 15 个字符?

php - 从数据库中通过 ID 获取介绍图片 (joomla)

php - 获取mysql中过去30天的列总和

c++ - 默认参数和变量列表

JavaScript - 变量未定义

Java JDK 8 IndexedPropertyDescriptor 自 JDK 7 以来已更改为 List 对象

php - 根据URL更改内容