使用函数将数组元素转换为引用突然 returns 值而不是
Using function to convert array elements to references suddenly returns values instead
升级到 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 最新版本中引入的错误,还是我不知道的重大更改?
将您的函数定义为
function refValues(&$array){
这样你就可以传递 $array "by reference" 否则你的 $refArray 引用指向一个数组值,该数组值仅在函数范围内
升级到 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 最新版本中引入的错误,还是我不知道的重大更改?
将您的函数定义为
function refValues(&$array){
这样你就可以传递 $array "by reference" 否则你的 $refArray 引用指向一个数组值,该数组值仅在函数范围内