当我使用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);
}