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 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决