eval函数的反义词是什么?

时间:2018-02-23 01:13:10

标签: php variables eval

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

这是我的代码:

// ./baz.js
import { notFoo } from './foo'

我必须从上面的代码中输出$test = 1; $t = '$test'; echo opposite_eval($t); ,我该如何使用方法,函数或类?

感谢您对朋友的帮助!

2 个答案:

答案 0 :(得分:1)

我通过从$ t字符串中删除$来欺骗了一点(你可以在函数中做到这只是一个字符串:

$t = 'test';

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

}

echo opposite_eval($t); //=1

您要查看的阶段是variable variables

答案 1 :(得分:0)

我想你想要一个variables variable

在你的情况下,它将是:     

$test = 1;
$t = 'test';
echo $$t;
// output: 1

附加组件:
你也可以这样做:

$test['x'] = 1;
$t = 'test';
echo $$t['x'];

$test['x'] = 1;
$t = "test['x']";
echo $$t;
// Produces: NOTICE Undefined variable: test['x'] on line number 6

也不会:

$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;