PHPの匿名関数の例と注意点を詳しく解説

怪我咯
リリース: 2023-03-11 17:32:02
オリジナル
897 人が閲覧しました

この記事では主に 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(&#39;~-([a-z])~&#39;, function ($match) {
 return strtoupper($match[1]);
}, &#39;hello-world&#39;);
// 输出 helloWorld
?>
ログイン後にコピー
クロージャ関数も変数の値として使用できます。 PHP は、この式を組み込みクラス Closure のオブジェクト インスタンスに自動的に変換します。クロージャーオブジェクトを変数に代入する方法は通常の変数代入の構文と同じで、最後にセミコロンも追加します:

匿名関数の変数代入例

<?php
$greet = function($name)
{
 printf("Hello %s\r\n", $name);
};
$greet(&#39;World&#39;);
$greet(&#39;PHP&#39;);
?>
ログイン後にコピー

クロージャは親スコープから変数を継承できます。 このような変数は、use language 構造を使用して渡す必要があります。

親スコープから変数を継承する

<?php
$message = &#39;hello&#39;
// 没有 "use"
$example = function () {
 var_dump($message);
};
echo $example();
// 继承 $message
$example = function () use($message) {
 var_dump($message);
};
echo $example();
// Inherited variable&#39;s value is from when the function
// is defined, not when called
$message = &#39;world&#39;echo $example();
// Reset message
$message = &#39;hello&#39;
// 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 = &#39;world&#39;echo $example();
// Closures can also accept regular arguments
$example = function ($arg) use($message) {
 var_dump($arg . &#39; &#39; . $message);
};
$example("hello");
?>
ログイン後にコピー

phpの匿名関数に関する注意事項

php5.3以降、phpに匿名関数の使用が追加されました。宣言と使用法については、コードを詳しく読んでください

$callback=function(){ 
 return "aa"; 
}; 
echo $callback();
ログイン後にコピー
印刷されたコードは aa;

以下の例を見てください:

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 サイトの他の関連記事を参照してください。

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