繁体   English   中英

php $_POST 使用 $$ 调用

[英]php $_POST using $$ call

我知道在 php 中可以使用以下代码:

$dog = 'Woof!';
$cat = 'Miauw!';
$animal = 'dog';
var_dump($$animal);

Output:“哇!”

当然,这是我实际代码的简化示例,但是您明白了。 现在我似乎无法让$_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();

Output:'注意:未定义变量:_POST'

那么这是否意味着无法以这种方式调用 $_POST 还是我做错了?

来自php 手册

注意:变量变量 Superglobals 不能用作函数或 class 方法内部的变量变量。

正如其他答案所述,即使是超全局变量也不是 PHP 中的真正全局变量。 它们需要专门导入到本地 scope 字典中,才能通过变量变量进行访问。

如果您真的只想访问 $_POST 和 $_GET 或 $_REQUEST,那么显式语法将是:

$GLOBALS[$method]['password'] = array();
$$method['password'] = array();

被评估为:

${$method['password']} = array();

PS:你最好不要这样做。 变量变量令人困惑,被认为是一种不好的做法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM