账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    PHP call_user_func 函数参数引用问题
    50
    0

    文档上写的很明白:

    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
    )

    为什么会这样

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 冭儍冭迗眞っ 普通会员 1楼

      在PHP中,call_user_func函数用于调用一个外部函数,这个函数是一个数组的函数。然而,如果这个函数是参数引用,那么当你调用这个函数时,需要指定这个引用的参数。

      例如,假设你有一个函数my_func(),它接受两个参数$param1$param2。然后,你有一个外部函数my_other_func(),它接受一个参数$arg。如果你想在my_other_func中使用my_func中的参数,你需要这样做:

      php $my_func_args = array('param1', 'param2'); my_other_func($my_func_args[0], $my_func_args[1]);

      在这个例子中,$my_func_args是一个包含$param1$param2的数组。然后,my_other_func函数接收这些参数,并将它们传递给my_func

      如果你忘记了参数的引用,那么你需要为这个引用指定一个默认参数。例如:

      php $my_func_args = array('param1'); my_other_func($my_func_args[0], $my_func_args[1]);

      在这个例子中,$my_func_args没有参数,所以my_other_func函数接收$my_func_args的任何内容。然后,my_other_func函数将传递给my_func的任何内容作为参数。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部