PHP のクロージャ: 「use」識別子を理解する
バージョン 5.3 で導入された PHP クロージャにより、次のようなカプセル化された関数を作成できます。外側のスコープの変数にアクセスします。ただし、「use」識別子が使用されるため、初めてこの識別子に遭遇する人は混乱する可能性があります。
クロージャの定義
クロージャは、匿名関数の構文:
$callback = function ($quantity, $product) use ($tax, &$total) { ... };
「使用」 Identifier
「use」識別子を使用すると、クロージャは外側のスコープで定義された変数にアクセスできます。 "use" の後にリストされている変数は、クロージャの名前空間にインポートされます。
仕組み
クロージャが作成されると、インポートされた変数の値はクロージャにコピーされます。クロージャの名前空間。これは、クロージャ内でインポートされた変数に加えられた変更は、外部スコープの変数には影響しないことを意味します。
ただし、インポートされた変数が参照 (先頭に「&」が付いている) の場合、クロージャ内で行われた変更は影響を与えません。外側のスコープに反映されます。上の例では、「&$total」は参照であり、クロージャが外部スコープの $total 変数を変更できるようにします。
クロージャの利点
クロージャを使用する場合
クロージャーは状況に応じて適切ですここで:
注: クロージャは可能な限り慎重に使用する必要があります複雑さとパフォーマンスの問題が発生します。
以上がPHP クロージャは「use」識別子を使用してアウタースコープ変数にアクセスする方法を教えてください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。