PHP の匿名関数内でグローバル変数を変更するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-12 18:37:02
オリジナル
892 人が閲覧しました

How Can I Modify Global Variables Within Anonymous Functions in PHP?

クロージャを使用した匿名関数の変数スコープの拡張

PHP では、匿名関数は通常、独自のスコープ内で動作し、外部で宣言された変数に直接アクセスできません。彼らのうち。これにより、グローバル変数を変更しようとするときに問題が発生する可能性があります。

例を考えてみましょう。

$variable = "nothing";

functionName($someArgument, function() {
  $variable = "something";
});

echo $variable;  //output: "nothing"
ログイン後にコピー

このスクリプトでは、$variable が別の変数に存在するため、匿名関数は $variable を変更できません。範囲。この制限を克服するには、クロージャを利用します。

クロージャを使用してグローバル変数を参照する

クロージャ (use() で示される) を使用すると、匿名関数が変数にアクセスできるようになります。囲むスコープ。匿名関数内でグローバル変数を変更するには、クロージャ内に & 演算子を含めるだけです:

functionName($someArgument, function() use(&$variable) {
  $variable = "something";
});
ログイン後にコピー

この変更された例では、匿名関数は & 演算子を使用してグローバル スコープ内の $variable 変数を参照します。 。これにより、関数が $variable の値を変更できるようになり、その値をスコープ外で取得して出力できるようになります。

クロージャを利用することで、匿名関数内の変数のスコープを効果的に拡張でき、より柔軟な実行が可能になります。グローバル データを操作します。

以上がPHP の匿名関数内でグローバル変数を変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート