douzhang3898 2018-09-07 19:59
浏览 121
已采纳

关于php7统一变量语法,嵌套函数

I'm try to solve a task which uses new functions php7 uniform variable syntax nested () support foo()() (https://wiki.php.net/rfc/uniform_variable_syntax). I need write function test for this code:

$sum = function($a, $b)  { return $a + $b; };
test(6)(2)(3)($sum);    // 11
test(3)(1)($sum);       // 4
test(3)(3)('pow');      // 27

I don't found any explanation for this feature. Where can I find how to use it? I see that I must return function name in function test, but how to pass argument?

  • 写回答

2条回答 默认 最新

  • dongyong1897 2018-09-08 07:20
    关注

    Thanks all for help. It's something like this:

    <?php
    
    function test($a) {
        echo '<br/>';
        $arr[] = $a;
        return $mf = function($b) use(&$mf, &$a, &$arr) {
            if(gettype($b) == 'object') {
                echo(array_reduce($arr, $b));
            } elseif (gettype($b) == 'string') {
                if($b == 'pow') {
                    echo array_reduce($arr, function ($carry, $a) {
                        return !empty($carry) ? pow($carry, $a) : $a;
                    });
                }
            } elseif (gettype($b) == 'integer') {
                $arr[] = $b;
            }
            return $mf;
        };
    }
    
    $sum = function($a, $b)  { return $a + $b; };
    test(6)(2)(3)($sum);    // 11
    test(3)(1)($sum);       // 4
    test(3)(3)('pow');      // 27
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 制裁名单20240508芯片厂商
  • ¥20 易康econgnition精度验证
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致