ctype_digit()
함수의 사용법
ctype_digit()
함수는
주어진 문자열이 0
부터 9
까지의 숫자로만 구성되어 있는지 확인하는 함수입니다.
이 함수는 매개변수로 전달된 문자열이 모두 숫자로 이루어져 있다면 true
를 반환하고, 그렇지 않으면 false
를 반환합니다.
- 공백 문자는 숫자로 판단되지 않습니다.
- 빈 문자열(
''
)은 숫자가 아닌 것으로 판단됩니다. '3.14'
와 같은 부동소수점 숫자(float 타입)은 숫자에.
부호가 포함되어 있는 문자열이므로 숫자가 아닌 것으로 판단됩니다.'-123'
와 같이 음의 정수와 같이 숫자에-
등의 부호가 포함되어 있는 문자열은 숫자가 아닌 것으로 판단됩니다.
이 함수의 관련 함수를 참조하세요.
ctype_digit()
함수의 형식은 다음과 같습니다.
구문
매개변수
$text |
필수. 모든 문자가 숫자인지 확인할 문자열 |
---|
참고 사항
ctype_digit()
함수는 ASCII 문자 코드를 기준으로 숫자인지 판단하며, ASCII 문자 코드에는 0
부터 9
까지의 숫자만 포함되어 있습니다. ASCII 문자의 범위는 0x00
부터 0x7F
까지 총 128개의 문자를 포함하는데 0
부터 9
까지의 숫자도 여기에 포함됩니다.
하지만, 매개변수로 전달되는 값이 정수일 경우 반드시 다음의 내용을 참고하세요.
매개변수로 전달되는 값으로 -128
에서 255
사이의 정수가 제공된 경우, 이는 하나의 문자의 ASCII 값으로 해석됩니다. 즉 해당 정수가 문자열로 변환된다는 의미입니다.
위의 예시 코드에 대해 설명하겠습니다.
$x = 65;
의 경우
-128
에서255
사이의 정수인65
는 ASCII 값으로 간주됩니다. 따라서 이는 문자열'A'
의 ASCII 값과 일치합니다.- 그래서 매개변수로 전달되는 값은
'A'
로 간주됩니다. - 따라서 매개변수로 전달된
'A'
문자열은 숫자로만 구성되어 있지 아니므로false
를 반환합니다.
$y = 1234;
의 경우
- 정수
1234
는-128
에서255
사이의 정수가 아니므로 하나의 문자의 ASCII 값으로 해석되지 않는 원래의 정수1234
입니다. - 문자열을 매개변수로 기대하는
ctype_digit()
함수에 정수1234
가 전달되면 해당 정수는 문자열로 변환되어'1234'
로 간주됩니다. - 따라서 매개변수로 전달된
'1234'
문자열은 모두 숫자로만 구성되어 있으므로true
를 반환합니다.
PHP 8.1.0 버전부터의 변경 사항
PHP 8.1.0 이후에는 ctype_digit()
함수에 문자열이 아닌 인수를 전달하는 것이 더 이상 지원되지 않습니다.
반환 값
매개변수로 전달된 문자열이 모두 숫자로 이루어져 있다면 true
를 반환하고, 그렇지 않으면 false
를 반환합니다.
주의할 점
ctype_digit()
함수를 사용할 때 주의할 점이 있습니다.
인수를 문자열로 변환해서 사용하기
위에서 언급한 바와 같이 -128
에서 255
범위 내의 정수 값인 경우에는 의도하지 않은 결과가 발생하게 됩니다. 또한, PHP 8.1.0 이후에는 ctype_digit()
함수에 문자열이 아닌 인수를 전달하는 것이 더 이상 지원되지 않기 때문에 인수로 사용될 값은 문자열로 변환 후 사용해야 합니다.
trim()
함수를 사용하여 문자열 앞뒤 공백 제거
ctype_digit()
함수는 공백 문자는 숫자로 판단되지 않습니다. ctype_digit()
함수를 더 엄격하게 적용하기 위해서는 주어진 문자열에 앞뒤에 공백이 있을 수 있으므로 trim()
함수를 사용하여 앞뒤의 공백을 제거하는 것이 좋습니다. 이렇게 하면 문자열에 공백이 포함되어 있더라도 숫자로만 이루어진 문자열인지를 정확하게 확인할 수 있습니다.
trim()
함수는
문자열의 양쪽 끝에서 공백 또는 매개변수로 지정된 문자열을 제거(trim)하는 함수입니다.
활용 예제
ctype_digit()
함수는 다음과 같은 경우에 사용하면 편리하거나 유용합니다.
사용자 입력 검사
양식 입력 값 검사에서 사용자가 숫자만 입력하도록 제한할 때 유용합니다.
같이 보기
- PHP gettype() 함수 - 변수의 데이터 타입 확인
- PHP is_bool() 함수 - 변수의 부울(boolean) 타입 확인
- PHP is_int() 함수 - 변수의 정수(integer) 타입 확인
- PHP is_float() 함수 - 변수의 부동소수점 숫자(float) 타입 확인
- PHP is_numeric() 함수 - 변수의 값이 숫자 또는 숫자 문자열인지 확인
- PHP is_string() 함수 - 변수의 문자열(string) 타입 확인
- PHP is_array() 함수 - 변수의 배열(array) 타입 확인
- PHP is_object() 함수 - 변수의 객체(object) 타입 확인
- PHP is_resource() 함수 - 변수의 리소스(resource) 타입 확인
- PHP is_null() 함수 - 변수의 NULL 타입 확인