【发布时间】:2012-03-30 07:19:31
【问题描述】:
我正在尝试使用可变变量动态访问 $_GET 和 $_POST 数组等。我尝试这样做的原因是我可以在多个数组上执行类似的操作,而无需为每个数组声明特定的迭代。我有理由确定这是可能的,因为 PHP 的文档说它能够使用变量变量来动态访问数组,但是我无法让它工作。一个简单的演示是当我尝试验证某个属性是否已设置时。
if(isset(${$this->_array}[$property])) { return ${$this->_array}[$property]; }
else { return null; }
当我运行上面的脚本时,我总是得到 null,但是当我静态地寻找所需的属性时,手动使用 $_GET 或 $_POST,我得到了所需的结果。我对$this->_array 和$property 进行了三次检查,它们返回了正确的字符串值。这些数组是否无法进行此类访问,还是我做错了什么?
【问题讨论】:
-
@ceejayoz:好吗?之前听说过,熟悉了这个概念。你想说什么?我的代码在其他地方错了吗?我已经确定传递给上述语句的变量是正确的。不知道还有什么可能。
-
我想说的是,使用可变变量通常表明你做错了什么。几乎总有更好的方法不会让后续开发者想要杀了你。
-
好吧,我没有意识到变量变量这么禁忌,这是我第一次接触它们。我一定会把它们排除在未来的代码之外:)