PHP の Lambda 関数はどのようにして外部変数にアクセスし、変更できるのでしょうか?

Linda Hamilton
リリース: 2024-11-11 12:26:03
オリジナル
835 人が閲覧しました

How Can Lambda Functions in PHP Access and Modify External Variables?

Lambda 関数を使用して外部変数にアクセスする

PHP では、Lambda 関数内で外部変数にアクセスできるため、データ処理が柔軟になります。 。ただし、変数キャプチャの微妙な違いを理解することが重要です。

コード スニペットを考えてみましょう:

function fetch($query, $func) {
    $query = mysql_query($query);
    while($r = mysql_fetch_assoc($query)) {
        $func($r);
    }
}

fetch("SELECT title FROM tbl", function($r){
   //> $r['title'] contains the title
});
ログイン後にコピー

このコードにより、提供された関数を使用してデータベース行を処理できます。ただし、複数の行からデータを集計する必要がある場合は、ラムダ関数内で use キーワードを使用できます。

$result = '';
fetch("SELECT title FROM tbl", function($r) use (&$result) {
   $result .= $r['title'];
});

echo $result;
ログイン後にコピー

use (&$result) を追加することで、ラムダ関数に外部の結果を使用するように指示します。 $result 変数を参照 (&) によって渡します。これにより、各行の値を 1 つの変数に連結できます。

ラムダ関数は早期バインディングを使用し、関数の呼び出し時ではなく定義時に外部変数の値を取得することに注意することが重要です。これにより、宣言と呼び出しの間に外部変数の値が変更されると、予期しない動作が発生する可能性があります。

以上がPHP の Lambda 関数はどのようにして外部変数にアクセスし、変更できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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