변수명으로 함수 호출
PHP 개발을 하다보면 함수명을 동적으로 호출해야할 때가 있는다.
생각보다 간단하므로 아래 소스코드를 참고 하면된다.
소스코드
- test(), test2() 두개의 함수를 생성하고 변수에 함수명을 입력한다.
1. function_exists() 를 이용하여 해당 문자열과 동일한 함수가 있는지 확인한다.
2. 해당 문자열과 동일한 함수가 존재한다면 변수에 () 기호를 붙여 함수를 호출하여 동작하는지 확인한다.
3. 해당 문자열과 동일한 함수가 없다면 예외 처리를 한다.
<?php
function test() {
print("test\n");
return ;
}
function test2() {
print("test2\n");
return ;
}
/*
function_exists : 인자로 주어진 문자열과 동일한 함수가 존재하는지 확인
$func() : 변수명에 함수기호 () 를 붙여주면 함수로 동작한다.
*/
$func = "test";
if( function_exists($func) ) {
$func();
} else {
print("{$func} - function not found\n");
}
$func = "test2";
if( function_exists($func) ) {
$func();
} else {
print("{$func} - function not found\n");
}
$func = "test3";
if( function_exists($func) ) {
$func();
} else {
print("{$func} - function not found\n");
}
?>
결과
test
test2
test3 - function not found
변수와 동일한 함수가 실행되는 것을 확인할 수 있다.
즉 함수 call point 를 꼭 fixed하지 않고 상황에 따라서 가변적으로 함수를 call 할 수 있다는 점을 기억하자.
끝.
'IT > programming' 카테고리의 다른 글
[C/C++] C++ string replace_all (2) | 2022.03.23 |
---|---|
[C/C++] C++ string ltrim, rtrim, trim (2) | 2022.03.23 |
[PHP] URI '/'(slash) 중복 처리 / preg_replace, 정규식 (1) | 2022.03.04 |
[PHP] nested JSON key 추출 / 재귀함수 활용, recursive call (4) | 2022.03.03 |
[C++] 프로그래머스, 베스트앨범 (0) | 2022.02.23 |
댓글