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)

为什么会这样


慕慕森
浏览 1633回答 2
2回答

Helenr

5.6版本执行的也是这么个情况<?phpecho&nbsp;"PHP版本:".phpversion(); $arr&nbsp;=&nbsp;[10,&nbsp;100,&nbsp;100,&nbsp;0]; $parma&nbsp;=&nbsp;[1,&nbsp;3,&nbsp;2,&nbsp;4]; call_user_func('array_multisort',&nbsp;$arr,&nbsp;$parma); print_r($arr);&nbsp; print_r($parma); $ar1&nbsp;=&nbsp;array(10,&nbsp;100,&nbsp;100,&nbsp;0); $ar2&nbsp;=&nbsp;array(1,&nbsp;3,&nbsp;2,&nbsp;4); array_multisort($ar1,&nbsp;$ar2); print_r($ar1); print_r($ar2);?>PHP版本:5.6.9-0+deb8u1Array( &nbsp;&nbsp;&nbsp;&nbsp;[0]&nbsp;=>&nbsp;10 &nbsp;&nbsp;&nbsp;&nbsp;[1]&nbsp;=>&nbsp;100 &nbsp;&nbsp;&nbsp;&nbsp;[2]&nbsp;=>&nbsp;100 &nbsp;&nbsp;&nbsp;&nbsp;[3]&nbsp;=>&nbsp;0)Array( &nbsp;&nbsp;&nbsp;&nbsp;[0]&nbsp;=>&nbsp;1 &nbsp;&nbsp;&nbsp;&nbsp;[1]&nbsp;=>&nbsp;3 &nbsp;&nbsp;&nbsp;&nbsp;[2]&nbsp;=>&nbsp;2 &nbsp;&nbsp;&nbsp;&nbsp;[3]&nbsp;=>&nbsp;4)Array( &nbsp;&nbsp;&nbsp;&nbsp;[0]&nbsp;=>&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;[1]&nbsp;=>&nbsp;10 &nbsp;&nbsp;&nbsp;&nbsp;[2]&nbsp;=>&nbsp;100 &nbsp;&nbsp;&nbsp;&nbsp;[3]&nbsp;=>&nbsp;100)Array( &nbsp;&nbsp;&nbsp;&nbsp;[0]&nbsp;=>&nbsp;4 &nbsp;&nbsp;&nbsp;&nbsp;[1]&nbsp;=>&nbsp;1 &nbsp;&nbsp;&nbsp;&nbsp;[2]&nbsp;=>&nbsp;2 &nbsp;&nbsp;&nbsp;&nbsp;[3]&nbsp;=>&nbsp;3)

红糖糍粑

我猜大概因为是版本问题 试了phpstudy其他几个版本都正常 还有个看楼下
打开App,查看更多内容
随时随地看视频慕课网APP