개요
PHP의 IntlChar::charDigitValue() 함수는 입력된 값이 십진수 숫자(decimal digit)인지 검사하고, 해당하는 경우 그 숫자 값을 반환하는 함수입니다. 이 함수를 사용하려면 PHP에 intl 확장 모듈이 설치되어 있어야 합니다.
문법
int IntlChar::charDigitValue(val)
매개변수
val − UTF-8 문자열로 인코딩된 단일 문자 또는 정수 값입니다.
반환값
입력된 값이 십진수 숫자라면 해당 숫자 값을 정수(int) 형태로 반환합니다. 반면, 숫자가 아닌 문자나 유효하지 않은 입력(예: 두 글자 이상의 문자열)이 전달되면 유효한 숫자 값이 없으므로 NULL이 반환됩니다.
예제
다음은 IntlChar::charDigitValue() 함수의 동작을 보여주는 예제입니다.
<?php
var_dump(IntlChar::charDigitValue("989"));
echo "<br>";
var_dump(IntlChar::charDigitValue("1"));
echo "<br>";
var_dump(IntlChar::charDigitValue("Humpty"));
echo "<br>";
var_dump(IntlChar::charDigitValue("u{0774}"));
?>
실행 결과
위 예제의 실행 결과는 다음과 같습니다.
NULL
int(1)
NULL
NULL
결과 해설
유효한 숫자 문자인 "1"을 전달했을 때만 해당 숫자 값인 int(1)이 반환됩니다. 반면 "989"나 "Humpty"처럼 여러 글자로 된 문자열, 또는 숫자가 아닌 문자를 전달하면 유효한 단일 숫자 값으로 판단할 수 없기 때문에 NULL이 반환됩니다. 따라서 이 함수를 사용할 때는 반드시 단일 문자를 인자로 전달해야 한다는 점에 유의해야 합니다.