クロージャ関数とは何ですか?クロージャ機能の役割は何ですか? (コード付き)

慕斯
リリース: 2023-03-10 12:24:01
オリジナル
2364 人が閲覧しました

前回の記事では「PHPの匿名関数とは何ですか?」についてご紹介しました。通常の機能とどう違うのですか? (詳しい解説と例) 」に引き続き、この記事ではクロージャ関数とは何か?クロージャ機能の役割は何ですか? (コード添付) 困っている友達は参考にしてください。

クロージャ関数とは何ですか?クロージャ機能の役割は何ですか? (コード付き)

クロージャ関数とは:

子関数内の use キーワードを通じて親関数の変数を使用します。メソッドはクロージャ関数です

形式:

function 父函数(){
//父函数的局部变量
$var-值
//声明廬名函数并且使用use格式实现闭包
变量- function() use(父元素变量){
};
}
ログイン後にコピー

今回学習した無名関数と今日学習したいクロージャ関数は、普段コードを書くときにはあまり使われません。 . フレームワークを書くとき。

具体的には、コードを例として取り上げて説明します。

<?php
/******* 闭包函数************/
//定义一个变量
  $pph = &#39; 这是页面及的变量&#39;;
  function father1(){
//父函数的一个局部变量
  $pph = &#39;不想上班&#39; ;
  function son1( ){
           global $pph;
           echo $pph;
}
    son();
}
    father1();
?>
ログイン後にコピー

コード分析:

まず、変数 $pph (ページと変数) を定義します。次に、親関数のローカル変数 [function Father()] を定義します このとき、内部変数と外部変数があります その後、グローバル $pph、出力 (エコー) $pph、出力結果が親クラスか、ページレベル。結果を実行すると、出力結果はページ レベルであることがわかりました (コードは以下に示されています)。したがって、グローバル変数が呼び出されると、ページ変数のみが出力され、親クラス変数は出力されないという結論に達しました。

クロージャ関数とは何ですか?クロージャ機能の役割は何ですか? (コード付き)

無名関数の形で書くと親要素の変数を利用できるので、useキーワードを使う必要がありますが、実行すると、エラー メッセージが表示されます

コードは次のとおりです:

function father(){
        $pph = &#39;不想上班&#39;;
        function son() use($pph){
        echio $pph;
        }
        son();
        }
        father();
ログイン後にコピー

実行結果は次のとおりです:

クロージャ関数とは何ですか?クロージャ機能の役割は何ですか? (コード付き)

したがって、これは次のとおりです。は間違っているため実装できません;

匿名関数を使用してクロージャを実装します;

     function father(){
            $pph = &#39;不想上班&#39;;
            $son = function () use($pph){
            echo $pph;
            };
            //调用内部函数
            $son();
            }
            father();
ログイン後にコピー

推奨される学習: 「PHP ビデオ チュートリアル

以上がクロージャ関数とは何ですか?クロージャ機能の役割は何ですか? (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!