2012-10-17 6 views
0

가능한 중복 : 다음 코드와 디퍼 런스 세라마이드는 무엇
In Php 5.3.0 what is the Function “Use” Identifier ? Should a sane programmer use it?사용() PHP 5.3

입니다 :

$di->set('db', function() use ($config) { 
    return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
     "dbname" => $config->database->name 
    )); 
}); 

$di->set('db', function($config) { 
    return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
     "dbname" => $config->database->name 
    )); 
}); 
+4

의 전화 http://stackoverflow.com/questions/1065188/in-php-5-3-0-what-is 전에 어딘가에 선언 된 $config 될 것 - 함수 - 사용 - 식별자 -해야 - 정상 - 프로그래머 - 우리 – Mob

답변

2

첫 번째 익명 함수는 $config에 액세스 할 수 있습니다. (anon 함수가 정의 된 범위의 $config 변수 사용) 두 번째 매개 변수는 $ config 매개 변수가 필요한 익명의 함수를 만듭니다.

$config을 사용하면 set() 어딘가에 함수로 전달됩니다. 처음에 그것은 set()

$config = "something"; 

function set($fn) { 
    $config = "anything"; 
    echo $fn($config); 
} 

set(function() use ($config) { return $config; }); //something 

set(function($config) { return $config; }); //anything