2011-10-25 3 views

답변

8

use은 기능이 아니며 Closure syntax의 일부입니다. 단순히 외부 범위의 지정된 변수를 클로저 내부에서 사용할 수있게합니다. 예를 들어

$foo = 42; 

$bar = function() { 
    // can't access $foo in here 
    echo $foo; // undefined variable 
}; 

$baz = function() use ($foo) { 
    // $foo is made available in here by use() 
    echo $foo; // 42 
} 

: $의 connections`는`null`되지 않을 것`주목해야한다

$array = array('foo', 'bar', 'baz'); 
$prefix = uniqid(); 

$array = array_map(function ($elem) use ($prefix) { 
    return $prefix . $elem; 
}, $array); 

// $array = array('4b3403665fea6foo', '4b3403665fea6bar', '4b3403665fea6baz'); 
3

$connections (부모 변수 변수)을 해당 범위에서 사용할 수 있도록 익명 함수에 알립니다.

이 없으면 $connections이 함수 내에 정의되지 않습니다.

Documentation.

+0

; 익명 함수의 범위에'use ($ connections)'로 명시 적으로 임포트되지 않았다면 정의되지 않은 변수가됩니다. –

+0

@IanGustafson 감사합니다. 답변을 업데이트하겠습니다. – alex