본문으로 바로가기

[PHP] create_function

category Helloworld!/Laravel 2013. 7. 15. 22:18

create_functionarray_map 함수는 람다함수와 클로저를 공부하기위해서 정리한것.

추후 람다함수와 클로저에 대해 포스팅하겠다


우선 create_function이란

string create_function ( string $args , string $code )

전달 된 매개 변수로 익명 함수를 만들고 그것을 고유 한 이름을 반환합니다. 는 php.net에 써있는거 구글번역기 돌린것ㅋㅋㅋㅋ


예제를 보는게 더빠르다.

$av = array("the ", "a ", "that ", "this ");
array_walk($av, create_function('&$v,$k', '$v = $v . "mango";'));
print_r($av);

/*
Array
(
  [0] => the mango
  [1] => a mango
  [2] => that mango
  [3] => this mango
)
*/

여기서... array_walk는 또 뭐냐...

그냥 예제만 이해하기위해 간단하게 퍼왔음

// 원소의 값을 대문자로 바꾼다. 
function modify_foods(&$value, $key, $data) {
$value = $data."_".strtoupper($value);
}

$foods = array("food" => "pizza", "beverage" => "cola", "cuisine" => "pasta", "fruit" => "apple");

// 배열 $foods의 모든 원소에 순서대로 print_foods() 함수를 실행한다. 
array_walk($foods, "print_foods");
/*
$foods[food] : pizza
$foods[beverage] : cola
$foods[cuisine] : pasta
$foods[fruit] : apple
*/
// 배열 $foods의 모든 원소에 순서대로 modify_foods() 함수를 실행한다. 
array_walk($foods, "modify_foods", "dotbogi");

array_walk($foods, "print_foods");
/*
$foods[food] : dotbogi_PIZZA
$foods[beverage] : dotbogi_COLA
$foods[cuisine] : dotbogi_PASTA
$foods[fruit] : dotbogi_APPLE
*/


자세한 내용은 여기에