글
IT/Tech 2010/08/27 08:30php type check
PHP 변수타입을 확인하는 명령어로 gettype 이 있습니다.
저도 javascript에서 typeof를 많이 쓰긴하지만 PHP에서 gettype은 좀처럼 쓰지 않다가(아예 쓰지 않았었죠) 최근에 typeof로 검색을 하니 PHP에도 gettype이라는 변수 type을 확인하는 명령어가 있더군요.
하지만 gettype은 자료형을 스트링으로 검사하기 때문에 속도가 느리다고 합니다.
[code php]
/* gettype이 반환하는 문자열
"boolean"
"integer"
"double" (역사적인 이유로 float의 경우에도 단순히 "float"가 아닌 "double"을 반환합니다)
"string"
"array"
"object"
"resource"
"NULL"
"unknown type"
*/
$val = "";
$type = gettype($val);
[/code]
php.net 에서 제안하는 is_* 함수를 사용하는 방법
[code php]
/*
settype() - 변수의 자료형을 설정
is_array() - 변수가 배열인지 확인
is_bool() - 변수가 논리형인지 확인
is_float() - 변수의 자료형이 소수인지 확인합니다
is_int() - 변수의 자료형이 정수인지 확인합니다
is_null() - 변수가 NULL인지 확인합니다
is_numeric() - 변수가 수나 수 문자열인지 확인합니다
is_object() - 변수가 객체인지 확인합니다
is_resource() - 변수가 자원인지 확인
is_scalar() - 변수가 스칼라인지 확인
is_string() - 변수의 자료형이 문자열인지 확인합니다
function_exists() - Return TRUE if the given function has been defined
method_exists() - 클래스 메쏘드가 존재하는지 확인
*/
/**
* 변수 타입을 반환한다.
*
* @param unknown_type $var
* @return str variable type
*/
function typeof($var){
switch(TRUE){
case(is_bool($var)): return 'boolean';break;
case(is_int($var)): return 'integer'; break;
case(is_numeric($var)): return 'number'; break;
case(is_float($var)): return 'float'; break;
case(is_string($var)): return 'string'; break;
case(is_array($var)): return 'array'; break;
case(is_scalar($var)): return 'scalar'; break;
case(is_object($var)): return 'object'; break;
case(is_resource($var)):return 'resource'; break;
case(is_null($var)): return 'NULL'; break;
default: return 'unknown type'; break;
}
}
[/code]
PHP Variable handling 함수 목록
gettype()을 어떤 자료형인지 시험하기 위해 사용하지 마십시오. 반환 문자열은 앞으로 나올 버전에서 바뀔 수 있습니다. 또한, 문자열 비교를 수행하기 때문에 느립니다.
대신, is_* 함수를 사용하십시오.php.net : gettype
[code php]
/* gettype이 반환하는 문자열
"boolean"
"integer"
"double" (역사적인 이유로 float의 경우에도 단순히 "float"가 아닌 "double"을 반환합니다)
"string"
"array"
"object"
"resource"
"NULL"
"unknown type"
*/
$val = "";
$type = gettype($val);
[/code]
php.net 에서 제안하는 is_* 함수를 사용하는 방법
[code php]
/*
settype() - 변수의 자료형을 설정
is_array() - 변수가 배열인지 확인
is_bool() - 변수가 논리형인지 확인
is_float() - 변수의 자료형이 소수인지 확인합니다
is_int() - 변수의 자료형이 정수인지 확인합니다
is_null() - 변수가 NULL인지 확인합니다
is_numeric() - 변수가 수나 수 문자열인지 확인합니다
is_object() - 변수가 객체인지 확인합니다
is_resource() - 변수가 자원인지 확인
is_scalar() - 변수가 스칼라인지 확인
is_string() - 변수의 자료형이 문자열인지 확인합니다
function_exists() - Return TRUE if the given function has been defined
method_exists() - 클래스 메쏘드가 존재하는지 확인
*/
/**
* 변수 타입을 반환한다.
*
* @param unknown_type $var
* @return str variable type
*/
function typeof($var){
switch(TRUE){
case(is_bool($var)): return 'boolean';break;
case(is_int($var)): return 'integer'; break;
case(is_numeric($var)): return 'number'; break;
case(is_float($var)): return 'float'; break;
case(is_string($var)): return 'string'; break;
case(is_array($var)): return 'array'; break;
case(is_scalar($var)): return 'scalar'; break;
case(is_object($var)): return 'object'; break;
case(is_resource($var)):return 'resource'; break;
case(is_null($var)): return 'NULL'; break;
default: return 'unknown type'; break;
}
}
[/code]
PHP Variable handling 함수 목록
'IT > Tech' 카테고리의 다른 글
| 아파치 특정 IP 차단 및 허용 (0) | 2010/09/07 |
|---|---|
| apache httpd.conf 설정파일 (0) | 2010/09/03 |
| php type check (0) | 2010/08/27 |
| facebook API & Session 죽이기 (0) | 2010/08/26 |
| mod_rewrite 설정 (0) | 2010/08/16 |
| apt-get install sendmail (0) | 2010/08/07 |
RECENT COMMENT