使用函数将数组元素转换为引用会突然返回值

时间:2016-07-29 11:01:25

标签: php arrays mysqli php-7

升级到PHP 7.0.9后,我的网站出现故障(之前的版本也是7.0.x)。显然,最新更新中的引用有所改变。我通过 call_user_func_array 使用mysqli功能 mysqli_stmt_bind_param ,它需要值作为参考。我在那里使用一个函数将数组从值转换为引用,如下所示:

function refValues($array){

    $refArray = array();
    foreach($array as $key => $value){
        $refArray[$key] =& $array[$key];
    }

    return $refArray;
}

返回数组时出现问题,因为所有引用都更改回值。事先并非如此,因为它在更新php之前完美运行。临时修复是不使用功能,但我真的不想这样做。有人有什么建议吗?这是最新版本的php中引入的错误,还是我不知道的重大变化?

1 个答案:

答案 0 :(得分:1)

将您的功能定义为

function refValues(&$array){

以便您通过引用"传递$ array"否则你的$ refArray引用指向一个仅限于函数

范围内的数组值

Demo