首页 > 解决方案 > PHP7函数中的全局变量?

问题描述

为 php7 更新 php5 应用程序并遇到这个困难......在一个到处使用的函数中似乎有一个全局变量变量,如下所示:

function verify($field) {
    global ${$field};
    $value = "";
    if (isset($field)) {
        $value = ${$field};
    } else {
        // get value...
    }
    return $value;
}

现在,当我们有很多这样的实例时,这对于 php5 来说完全没问题

$var = verify("field");
$var2 = verify("field2");
$var3 = verify("field3");

不过,php7 似乎无法接受棘手的${$field}部分。该应用程序的许多功能不适用于 php7,因为此函数 verify() 无法获取整个代码中变量的值。任何想法如何为 php7 重写?必须使 $var、$var2、$var3 在脚本中可用。谢谢!!

标签: phpmigrationphp-7php-7.1

解决方案


不带花括号试试

function verify($field) {
    global $$field;
    $value = "";
    if (isset($field)) {
        $value = $$field;
    } else {
        // get value...
}
return $value;

}


推荐阅读