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 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?