PHP call_user_func 函数参数引用问题

文档上写的很明白:

Note: 请注意,传入call_user_func()的参数不能为引用传递

然而PHP7.0下 下例活生生的出现了

$arr = [10, 100, 100, 0];
$parma = [1, 3, 2, 4];

call_user_func('array_multisort', $arr, $parma);

print_r($arr); 

print_r($parma);

输出

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

为什么会这样

阅读 2.6k
2 个回答

5.6版本执行的也是这么个情况

<?php
echo "PHP版本:".phpversion();
$arr = [10, 100, 100, 0];
$parma = [1, 3, 2, 4];

call_user_func('array_multisort', $arr, $parma);
print_r($arr); 

print_r($parma);

$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);
print_r($ar1);
print_r($ar2);
?>
PHP版本:5.6.9-0+deb8u1
Array
(
    [0] => 10
    [1] => 100
    [2] => 100
    [3] => 0
)
Array
(
    [0] => 1
    [1] => 3
    [2] => 2
    [3] => 4
)
Array
(
    [0] => 0
    [1] => 10
    [2] => 100
    [3] => 100
)
Array
(
    [0] => 4
    [1] => 1
    [2] => 2
    [3] => 3
)

我猜大概因为是版本问题 试了phpstudy其他几个版本都正常 还有个看楼下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题