【问题标题】:Method reference in PHP [duplicate]PHP中的方法参考[重复]
【发布时间】:2021-03-10 08:17:16
【问题描述】:

在 Java 中,可以通过使用方法引用来编写一些简洁的函数式代码,例如:

class Foo {
    public void method1(List<String> foo) {
        foo.stream().map(this::method2);
    }

    private String method2(String s) {
        return s.toLowerCase() + " bar";
    }
}

有没有办法在 PHP 中做类似的事情比:

class Foo {
  public function method1(array $foo) {
    array_map(
        function ($s) {
          return $this->method2($s);
        },
        $foo
    );
  }

  private function method2(string $s) {
    return strtolower($s) . "bar";
  }
}

【问题讨论】:

    标签: php functional-programming


    【解决方案1】:

    你可以使用:

    array_map([$this, 'method2'], $foo);
    

    【讨论】:

    • 不,非公共方法也可以正常工作。
    • 对,删除那一点。认为我记错了,因为它必须是 public 与 Laravel 的集合一起使用时,例如Collection::map
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 2015-08-30
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多