Heim >Backend-Entwicklung >PHP-Tutorial >作用域 - php函数中的子函数如何读取父函数的变量

作用域 - php函数中的子函数如何读取父函数的变量

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-06 20:29:531461Durchsuche

下面的函数的$key 值如何传到$sortFun 里使用?

<code>function arraySort($arr,$key,$sort = 'asc'){
    $sortFun = function($a,$b){
        //这里没办法获取$key的值!
        return ((int)$a[$key] > (int)$b[$key]) ? 1 : -1;
    };

    usort($arr,$sortFun);
}
</code>

回复内容:

下面的函数的$key 值如何传到$sortFun 里使用?

<code>function arraySort($arr,$key,$sort = 'asc'){
    $sortFun = function($a,$b){
        //这里没办法获取$key的值!
        return ((int)$a[$key] > (int)$b[$key]) ? 1 : -1;
    };

    usort($arr,$sortFun);
}
</code>

<code>function arraySort($arr, $key, $sort = 'asc'){
    $sortFun = function ($a, $b) use ($key) {
        //这里没办法获取$key的值!
        return ((int)$a[$key] > (int)$b[$key]) ? 1 : -1;
    };
    usort($arr,$sortFun);
}</code>

PHP匿名函数默认不能直接调用所在代码块的上下文变量,需要通过使用use关键字连接闭包(匿名函数)和外部变量。

<code>$sortFun = function ($a, $b) use ($key) {}</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php的数学题Nächster Artikel:mysql密集写入问题