当我使用print_r
检查此函数的内容时$arr
和$refs
是相同的。
奇怪,因为这是here给出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 )
信息。准备好的陈述here
信息。在call_user_func_array here
上信息。关于call_user_func_array here
的引用的必要性此函数是否返回引用数组或值数组?
更新:使用var_dump并添加& to参数给出了类似的结果...添加了返回int的验证。
1 2 3 4 array(4){[0] => & int(1)1 => & int(2)2 => & int(3)3 => & int(4)}
答案 0 :(得分:3)
不,您的函数不会返回引用数组。 如果要返回引用数组,请更改为:
function makeValuesReferenced(&$arr){
$refs = array();
foreach($arr as $key => $value)
$refs[$key] = &$arr[$key];
return $refs;
}
PS:您应该使用var_dump
进行检查。
答案 1 :(得分:0)
有一种替代方法可以执行此操作,包括辅助函数。
//Helper function
function makeValueReferenced(&$value) {
return $value;
}
function makeValuesReferenced($array) {
return array_map("makeValueReferenced", $array);
}