글제목 선정이 조금 어려웠는데 말 그대로 사용자 정의 함수 1개를 선언하여 여러개의 함수를
재정의 후 사용할 수 있는 서포트 함수다.
나같은 경우 예전에 클래스로 컨트롤러 작업을 하다가 함수형태로도 사용하면 좋을 것 같아 따로 만들어서 계속 사용중이다.
아래는 method 함수와 예제이니 참고하여 사용하면 된다.
method 함수 |
// method 함수
if( function_exists('method') === false){
function method()
{
$args = func_get_args();
if( count($args ) > 0){
$method = $args[0];
unset($args[0]);
$args = array_values($args);
if(!empty($method)) $method = strtolower($method);
else{ $method = null; }
}else{ $args = array(); }
if( $method === null ){ return false;}
switch ($method) {
// ===== 필수 함수
case strtolower("parm"):
if( count($args[1]) < 1){ return false; }
$parmSet = array(); $idx = 0;
foreach($args[1] as $key => $val){
if( !empty($args[0][$idx])) $parmSet[$key] = $args[0][$idx];
else $parmSet[$key] = $args[1][$key];
$idx++;
}
return $parmSet;
break;
// 텍스트에서 숫자만 가져온다. 없을경우 0
case strtolower("getNumber"):
$parmSet = method('parm',$args,array('str'=>false,'int'=>false)); // 2022-04-04 - 수정
extract($parmSet);
if( empty($str)){ return 0; }
$minus = false; // 음수를 판별
if( preg_match("/^[-]/",$str) > 0){ $minus = true; }
$str = preg_replace("/[^0-9]*/s", "", $str);
if( empty($str)){ return 0; }
if($minus === true){ $str = '-'.$str; }
if( !empty($str) && $int === true ){ $str*=1; }
return $str;
break;
}
}
}
예제 |
var_dump(method('getNumber',"한1국2만세")); // string(2) "12"
수정이력 |
2022-04-04 - 소스코드 오류 보정 , // 2022-04-04 주석 참고 |