在函数和类之外使用PHP的超全局数组的变量变量

时间:2015-12-19 03:47:09

标签: php superglobals variable-variables

我是PHP的初学者,我发现警告说:

  

请注意,变量变量不能与PHP的超全局数组函数或类方法中一起使用。

那么,这是否意味着我可以在函数和类方法的超全局 之外使用变量变量,如下所示:

<?php
    foreach(array('_GET','_POST','_COOKIE','_REQUEST') as $key) {
        if (isset($$key)){
            foreach($$key as $_key => $_value){
               $$key[$_key] = MyFunc($_value);
            }
        }
    }
    function MyFunc($str){
       ********************
    }
?>

实际上,我试过了,它似乎按预期工作, 但是为什么PHP不允许在函数或类中使用它,那么考虑什么呢?

1 个答案:

答案 0 :(得分:0)

我认为这意味着你不能做isset($$key)之类的事情。

也许这样做,$request = $$key

foreach(array('_GET','_POST','_COOKIE','_REQUEST') as $key) {
    $request = $$key;
    if (isset($request)){
        foreach($request as $_key => $_value){
           $request[$_key] = MyFunc($_value);
        }
    }
}