create_function
과 array_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
*/