Php eval函数的对立面是什么?

Php eval函数的对立面是什么?,php,variables,eval,Php,Variables,Eval,我想知道如何使用与eval函数完全相反的函数 这是我的代码: $test = 1; $t = '$test'; echo opposite_eval($t); 我必须从上面的代码1输出,我如何才能使用方法,函数或类 感谢您尊敬的帮助朋友 我从$t字符串中删除了$t,这有点作弊。你可以在函数中这样做,它只是一个字符串: $t = 'test'; function opposite_eval($t){ $test = 1; return($$t); } echo opposite_eva

我想知道如何使用与eval函数完全相反的函数

这是我的代码:

$test = 1;

$t = '$test';

echo opposite_eval($t);
我必须从上面的代码1输出,我如何才能使用方法,函数或类


感谢您尊敬的帮助朋友

我从$t字符串中删除了$t,这有点作弊。你可以在函数中这样做,它只是一个字符串:

$t = 'test';

function opposite_eval($t){
$test = 1;
return($$t);

}

echo opposite_eval($t); //=1
您要查看的阶段是

我想您需要一个

在您的情况下,它将是:
$test = 1;
$t = 'test';
echo $$t;
// output: 1
插件: 你也可以这样做:

$test['x'] = 1;
$t = 'test';
echo $$t['x'];
鉴于这不起作用:

也不会:

$test = new stdClass();
$test->x = 1;
$t = "test->x";
echo $$t;
但这将起作用:

$test = new stdClass();
$test->x = 1;
$t = "{$test->x}";
echo $t;
这也将起作用:

$test =[];
$test['x'] = 1;
$t = "{$test['x']}";
echo $t;

.... 什么可能是您想要的:使用变量通常表示您应该使用数组。检查你自己,在你破坏你的代码之前。你所做的事情通常是要避免的。随着代码的增长,这种技术将使代码更难阅读和管理。相关阅读:更多必读阅读:你会注意到,每当有人问一个关于变量的问题时,知情者都会强烈反对这种做法。请注意这些警告。它看起来像一个X-Y问题,与其询问您的目的解决方案,不如删除此内容并询问您认为这就是答案的问题to@Rang不客气,它没有用很多,所以请确保你使用的工作正确的工具。谢谢你的通知。那么,我如何将这个系统用于数组项等:$x=['foo','bar']$y='x[1]';echo$$y@这是真实世界的案例还是你只是在试验?我在我们的现场项目中使用这种方式,在这种情况下有问题吗?看起来很“混乱”,很难维持,事实上你不得不问这个问题说明了很多。这里有一个更好的方法,我如何使用这个系统来处理数组项,等等:$test['x']=1;我应该像你的例子一样使用这个字符串定义。非常感谢你的兴趣,但我有一个结构$x=['foo','bar']$y='x[1]';echo$$y;我需要使用我的结构得到1个输出。$y={$x[1]};echo$y;将输出“bar”,但正如@mickmackusa所说的:如果你认为你需要它,那么总体设计似乎有问题…@没有发生什么事,我只是浪费了时间,不得不重写代码。有一整套数组函数和语言构造,可以轻松处理数组类型的数据。变量很笨拙-句号。当您想要迭代它们或一次处理其中的几个时,您将编写笨拙/讨厌的代码。还有一种风险是,您可能会失去对全局环境中命名空间的控制,并遭受意外的冲突。现在是时候重新考虑您的数据存储了。。。如果您将实际情况作为新问题发布,我们可以帮助您。
$test =[];
$test['x'] = 1;
$t = "{$test['x']}";
echo $t;