ホームページ >バックエンド開発 >PHPチュートリアル >PHPのアロー関数の例を詳しく解説

PHPのアロー関数の例を詳しく解説

coldplay.xixi
coldplay.xixi転載
2020-07-01 17:44:313560ブラウズ

PHPのアロー関数の例を詳しく解説

#アロー関数と呼ばれる短いクロージャは、バージョン PHP7.4 がもたらす待望の機能の 1 つです。 Nikita Popov、Levi Morrison、Bob Weinand によって提案されました。オリジナルの RFC はここで読むことができます

関連学習の推奨事項:初心者からマスターまでの PHP プログラミング

Doctrine DBAL からの簡単な例

//老办法
$this->existingSchemaPaths = array_filter($paths, function ($v) use ($names) {
    return in_array($v, $names);
});

// 使用箭头函数的新方法
$this->existingSchemaPaths = array_filter($paths, fn($v) => in_array($v, $names));

ルールを見てみましょう

  1. fn は、 の代わりにキーワードです。予約された関数名。
  2. 式は 1 つだけ含めることができ、それは return ステートメントです。
  3. rereturn および use キーワードを使用する必要はありません。
  4. $this 変数、スコープ、LSB スコープは自動的にバインドされます。
  5. プロンプト パラメータと戻り値の型を入力できます。
  6. 参照& とスプレッド演算子 ...
##いくつかの例

//作用域示例
$discount = 5;
$items = array_map(fn($item) => $item - $discount, $items);

//类型提示
$users = array_map(fn(User $user): int => $user->id, $users);

//展开操作符
function complement(callable $f) {
    return fn(...$args) => !$f(...$args);
}

//嵌套
$z = 1;
$fn = fn($x) => fn($y) => $x * $y + $z;

//有效的函数签名
fn(array $x) => $x;
fn(): int => $x;
fn($x = 42) => $x;
fn(&$x) => $x;
fn&($x) => $x;
fn($x, ...$rest) => $rest;

将来スコープ

    複数行のアロー関数
  1. クラス内の関数にアロー関数を使用できるようにします。
  2. //现今
    class Test {
        public function method() {
            $fn = fn() => var_dump($this);
            $fn(); // object(Test)#1 { ... }
    
            $fn = static fn() => var_dump($this);
            $fn(); // Error: Using $this when not in object context
        }
    }
    
    //也许在未来的某一天
    class Test {
        private $foo;
        private $bar;
    
        fn getFoo() => $this->foo;
        fn getBar() => $this->bar;
    }
私のお気に入りポイント

    コールバックを短くできる
  1. 変数を要求するための
  2. use キーワードは必要ありません。
これらのアップデートについてどう思うか、また最も気に入った点は何でしたか教えてください。 #########読んでくれてありがとう。

以上がPHPのアロー関数の例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。