この記事では主に PHP 匿名関数 と Notes について詳しく紹介します。匿名関数は PHP5.3 で導入されました。匿名関数を学びたい人は参考にしてください。
php5.3 には匿名関数が導入されているだけではありません。 PHP の匿名関数と注意点を見てみましょう。詳細は次のとおりです。
PHP5.2: 自動ロード、PDO および MySQLi、型制約
PHP5。 .3: 非推奨の機能、匿名関数、新しい マジックメソッド
、名前空間、遅延静的バインディング、Heredoc と Nowdoc、const、三項演算記法、PharPHP5.4: 短いオープンタグ、配列の省略形、特性、組み込み Web サーバー、詳細が変更されました
PHP5.5: yield、foreach の list()、詳細が変更されました
PHP5.6: 定数の強化、変数 関数パラメーター
、名前空間の強化基本的にはPHP5.3以降のバージョンを使用しますが、長い年月が経っても多くの新機能が十分に普及していないという共通の現象がプロジェクト内でほとんど使用されないように感じます。 PHP 匿名関数を見てください:
'test' => function(){ return 'test' },
PHP 匿名関数の定義は非常に単純で、変数に値を代入することですが、この値は関数です。
上記はYiiフレームワークを使用して設定されたコンポーネントファイルであり、テスト設定が追加されています。
PHP 匿名関数とは何ですか?公式の説明を参照してください:
匿名関数、
クロージャ関数とも呼ばれ、指定された名前なしで関数を一時的に作成できます。コールバック関数の引数として最も一般的に使用される値。もちろん、他のアプリケーションもあります。 匿名関数の例<?php
echo preg_replace_callback('~-([a-z])~', function ($match) {
return strtoupper($match[1]);
}, 'hello-world');
// 输出 helloWorld
?>
匿名関数の変数代入例
<?php $greet = function($name) { printf("Hello %s\r\n", $name); }; $greet('World'); $greet('PHP'); ?>
クロージャは親スコープから変数を継承できます。 このような変数は、use language 構造を使用して渡す必要があります。
親スコープから変数を継承する
<?php $message = 'hello' // 没有 "use" $example = function () { var_dump($message); }; echo $example(); // 继承 $message $example = function () use($message) { var_dump($message); }; echo $example(); // Inherited variable's value is from when the function // is defined, not when called $message = 'world'echo $example(); // Reset message $message = 'hello' // Inherit by-reference $example = function () use(&$message) { var_dump($message); }; echo $example(); // The changed value in the parent scope // is reflected inside the function call $message = 'world'echo $example(); // Closures can also accept regular arguments $example = function ($arg) use($message) { var_dump($arg . ' ' . $message); }; $example("hello"); ?>
php5.3以降、phpに匿名関数の使用が追加されました。宣言と使用法については、コードを詳しく読んでください$callback=function(){
return "aa";
};
echo $callback();
以下の例を見てください:
echo $callback(); $callback=function(){ return "aa"; };
この時点でエラーが報告されました。 $callback は宣言されていませんが、PHP 自体で宣言された関数を使用してもエラーは報告されません。
function callback(){ return "aa"; } echo callback(); //aa echo callback(); //aa function callback(){ return "aa"; }
これらは両方とも出力されます aa;
匿名関数を使用する場合、匿名関数は変数として使用されるため、事前に宣言する必要があります。js でも同様です。 ! ! ! !
以上、PHPの匿名関数と注意事項をご紹介しましたが、学習のお役に立てれば幸いです。
以上がPHPの匿名関数の例と注意点を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。