将值数组转换为引用数组


converting array of values to an array of references

当我使用print_r检查该函数的内容时,$arr$refs是相同的。

奇数,因为这是在这里给call_user_func_array传递引用数组的问题的解决方案。

这个函数返回一个引用数组还是一个值数组?

function makeValuesReferenced($arr){ 
    $refs = array(); 
    foreach($arr as $key => $value) 
        $refs[$key] = &$arr[$key]; 
    return $refs; 
}

函数调用:

print_r($db_->ref_arr(array(1,2,3,4)));
结果

Array ( [0] => 1 
        [1] => 2 
        [2] => 3 
        [3] => 4 )

信息。这里的预处理语句

信息。在call_user_func_array上

信息。这里call_user_func_array引用的必要性

这个函数返回的是一个引用数组还是一个值数组?

更新:使用var_dump并添加&To parameter给出了类似的结果…添加返回整型的验证。

1 2 3 4阵列(4){[0]=>,int (1) 1 =>, int (2) 2 =>, int (3) 3 =>, int (4)}

不,您的函数不返回引用数组。如果您想返回一个引用数组,请更改为:

function makeValuesReferenced(&$arr){ 
    $refs = array(); 
    foreach($arr as $key => $value) 
        $refs[$key] = &$arr[$key]; 
    return $refs; 
}

PS:您应该使用var_dump检查

还有一种方法可以做到这一点,这涉及到一个辅助函数。

//Helper function
function makeValueReferenced(&$value) {
    return $value;
}
function makeValuesReferenced($array) {
    return array_map("makeValueReferenced", $array);
}