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

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

coldplay.xixi
リリース: 2023-04-09 06:28:01
転載
3561 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート