• php中call_user_func 与 call_user_func_array的使用


    // 1、 调用自定义函数
    function test($a, $b)
    {
        echo $a + $b;
    }
    // 字符串传参
    call_user_func('test', 1, 2); // 3
    // 数组式传参
    call_user_func_array('test', [1, 2]); // 3
    
    // 2、 调用匿名函数
    call_user_func(function($a, $b){ echo $a + $b ;}, 1, 2); // 3
    call_user_func_array(function($a, $b){ echo $a + $b ;}, [1, 2]); // 3
    
    // 3、 调用系统函数
    echo call_user_func('strtoupper', 'abc'); // ABC
    echo call_user_func_array('strtoupper', ['abc']); // ABC
    
    // 4、 调用类中的函数
    class Test
    {
        static public function demo($a, $b)
        {
            echo $a + $b;
        }
        public function show($a, $b)
        {
            echo $a + $b;
        }
    }
    // 调用类中的静态方法
    		   // 类名方法名以数据形式
    		call_user_func(['Test', 'demo'], 1, 2); // 3
    		call_user_func_array(['Test', 'demo'], [1, 2]); // 3
    		   // 类名方法名以字符串形式
    		call_user_func('Test::demo', 1, 2); // 3
    		call_user_func_array('Test::demo', [1, 2]); // 3
    
    // 调用类中的动态方法,对象和方法必须通过数组形式传递
    call_user_func([new Test, 'show'], 1, 2); // 3
    call_user_func_array([new Test, 'show'], [1, 2]); // 3
    

      

  • 相关阅读:
    [bzoj1251]序列终结者
    Codeforces #Round 406(Div.2)
    [3.23校内训练赛]
    [APIO2009]
    [APIO2016]
    [bzoj1901]动态区间k大
    [9018/1904]火星商店
    [bzoj3673/3674可持久化并查集加强版]
    [bzoj1297][SCOI2009]迷路
    [bzoj1218][HNOI2003]激光炸弹
  • 原文地址:https://www.cnblogs.com/cblx/p/15556383.html
Copyright © 2020-2023  润新知