我知道在php中可以使用以下代码:
$dog = 'Woof!';
$cat = 'Miauw!';
$animal = 'dog';
var_dump($$animal);
输出:'Woof!'
当然这是我实际代码的一个简化示例,但是你明白了。
现在我似乎无法使$_POST
变量以相同的方式运行。
示例:
$method = '_POST';
$$method['password'] = array();
// In the end i would want this piece of code above to do what i typed below
$_POST['password'] = array();
输出:'注意:未定义的变量:_POST'
这是否意味着不可能以这种方式调用$ _POST,或者我是以错误的方式调用它?
答案 0 :(得分:5)
来自php manual:
注意:变量变量Superglobals 不能用作变量变量 内部函数或类方法。
答案 1 :(得分:3)
正如其他答案所概述的那样,甚至超级全球都不是PHP中真正的全局变量。需要将它们专门导入到本地范围的dict中,以便可以使用变量进行访问。
如果你真的只想访问$ _POST和$ _GET或$ _REQUEST,那么显式语法就是:
$GLOBALS[$method]['password'] = array();
答案 2 :(得分:1)
$$method['password'] = array();
评估为:
${$method['password']} = array();
P.S。:你最好不要这样做。变量变量令人困惑,被认为是一种不好的做法。