php $ _POST使用$$调用

时间:2011-04-27 12:12:31

标签: php variables post

我知道在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,或者我是以错误的方式调用它?

3 个答案:

答案 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。:你最好不要这样做。变量变量令人困惑,被认为是一种不好的做法。