前回の記事では「PHPの匿名関数とは何ですか?」についてご紹介しました。通常の機能とどう違うのですか? (詳しい解説と例) 」に引き続き、この記事ではクロージャ関数とは何か?クロージャ機能の役割は何ですか? (コード添付) 困っている友達は参考にしてください。
クロージャ関数とは:
子関数内の use キーワードを通じて親関数の変数を使用します。メソッドはクロージャ関数です
形式:
function 父函数(){ //父函数的局部变量 $var-值 //声明廬名函数并且使用use格式实现闭包 变量- function() use(父元素变量){ }; }
今回学習した無名関数と今日学習したいクロージャ関数は、普段コードを書くときにはあまり使われません。 . フレームワークを書くとき。
具体的には、コードを例として取り上げて説明します。
<?php /******* 闭包函数************/ //定义一个变量 $pph = ' 这是页面及的变量'; function father1(){ //父函数的一个局部变量 $pph = '不想上班' ; function son1( ){ global $pph; echo $pph; } son(); } father1(); ?>
コード分析:
まず、変数 $pph (ページと変数) を定義します。次に、親関数のローカル変数 [function Father()] を定義します このとき、内部変数と外部変数があります その後、グローバル $pph、出力 (エコー) $pph、出力結果が親クラスか、ページレベル。結果を実行すると、出力結果はページ レベルであることがわかりました (コードは以下に示されています)。したがって、グローバル変数が呼び出されると、ページ変数のみが出力され、親クラス変数は出力されないという結論に達しました。
無名関数の形で書くと親要素の変数を利用できるので、useキーワードを使う必要がありますが、実行すると、エラー メッセージが表示されます
コードは次のとおりです:
function father(){ $pph = '不想上班'; function son() use($pph){ echio $pph; } son(); } father();
実行結果は次のとおりです:
したがって、これは次のとおりです。は間違っているため実装できません;
匿名関数を使用してクロージャを実装します;
function father(){ $pph = '不想上班'; $son = function () use($pph){ echo $pph; }; //调用内部函数 $son(); } father();
推奨される学習: 「PHP ビデオ チュートリアル 」
以上がクロージャ関数とは何ですか?クロージャ機能の役割は何ですか? (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。