PHP閉包實(shí)例解析

字號(hào):


    通常來(lái)說(shuō),閉包也就是PHP的匿名函數(shù), 但是和函數(shù)不同的是,閉包可以通過(guò)use使用函數(shù)聲明時(shí)所在作用域的變量的值。
    具體形式如下:
    1$a = function($arg1, $arg2) use ($variable) {
    2// 聲明函數(shù)閉包到變量$a, 參數(shù)為$arg1, $arg2 ,該閉包需使用$variable變量
    3}
    具體用法實(shí)例如下:
    01<?php
    02$result = 0;
    03
    04$one = function()
    05{ var_dump($result); };
    06
    07$two = function() use ($result)
    08{ var_dump($result); }; // 可以認(rèn)為 $two這個(gè)變量 本身記錄了該函數(shù)的聲明以及use使用的變量的值
    09
    10$three = function() use (&$result)
    11{ var_dump($result); };
    12
    13$result++;
    14
    15$one(); // outputs NULL: $result is not in scope
    16$two(); // outputs int(0): $result was copied
    17$three(); // outputs int(1)
    18?>