제목 | func_get_args() | ||
---|---|---|---|
글쓴이 | 변종원(웅파) | 작성시각 | 2009/04/07 13:51:20 |
|
|||
func_get_args() <- 이 함수 오늘 처음으로 뭔 일을 하는지 찾아봤네요. 날코딩이나 class를 쓸때도 필요하지 않았었는데 CI로 플러그인 구조를 만들다보니 필요해진 함수네요. 그런데 평상시에도 사용하면 유연성을 발휘할 수 있습니다. 다음 예문을 보세요. a.php theme('page', 'aa'); function theme() { $args = func_get_args(); print_r($args); } ?> 아래 예문과 비교해보세요. b.php theme('page', 'aa'); function theme($a, $b) { $args = func_get_args(); echo "$a, $b"; } ?> 밑의 b.php는 argument 없이 thme(); 로 호출하면 Warning: Missing argument 1, 2 for theme() 를 뱉어냅니다. 위의 a.php는 argument를 주지 않더라도 에러가 나지 않습니다. argument를 몇개를 주던지 배열로 받아서 처리하니까 유연해지죠. 함수의 무결성(용어가 적절하진 않지만, 꼭 필요한 변수만을 받아서 처리해야하는 경우)을 보장해야 한다면 기존 방식대로 argument를 선언해주는 것이 맞고, 플러그인 같이 여러 개발자 개발하여 적용하는 경우에는 유용할 것 같습니다. CMS 개발하다보니 평상시 개발과는 다른 구조때문에 재미있는 것을 발견하게 되네요. ^^ |
|||
다음글 | mod_rewrite 사용시 경로설정은 어떻게들 하시나... (6) | ||
이전글 | (가칭) Codeigniter 한국 사용자 포럼 도메인... (6) | ||
kirrie
/
2009/04/07 15:23:26 /
추천
0
|
변종원(웅파)
/
2009/04/07 17:39:50 /
추천
0
php4는 func_get_args() 를 이용하고 php5는 kirrie님이 올리신 소스로 버전에 따라 작동하게 해서 쓰시면 되겠네요. ^^
하나 만들어서 올려주삼! ^_________^ |
양승현
/
2009/04/08 09:22:22 /
추천
0
신기한게 많네요.. ㅎㅎ
|
class MagicMethods {
function __call($name, $args)
{
echo 'Method : '.$name.'
';
echo 'Params : ';
print_r($args);
}
}
$MM = new MagicMethods;
$MM->hello('world!');
//결과
/*
method : hello
params : array([0] -> 'world!')
*/
?>