[PHP] 투입 변수가 숫자인지 확인 해주는 is_numeric 함수를 알아보자

PHP 에서 변수가 숫자인지 아닌지를 판단해주는 is_numeric 이라는 함수가 있습니다. 아주 간단한 함수이지만 매우 중요한 함수이므로 is_numeric 함수를 정리해봅니다.

is_numeric 함수

앞에서 말한대로 is_numeric 함수는 사용법도, 반환값도 아주 간단합니다.

$result = is_numeric( $var );

함수의 사용법은 아주 간단합니다. 숫자인지 아닌자 판단할 변수를 함수의 파라미터로 넣어주면 됩니다. 그럼 is_numeric 함수가 잘 판단해서 투입 변수가 숫자일 경우 true 를, 숫자가 아닐 경우 false 값을 반환합니다.

is_numeric 함수 활용 예제

조금더 자세한 활용법을 알아보도록 합시다.

if ( is_numeric( $var ) ) {
    //투입 변수가 숫자일 때 실행할 작업들 
}
else {
    //투입 변수가 숫자가 아닐때 실행할 작업들 
}

당연하겠지만, if 문과 함께 활용하기 아주 좋습니다. if 문을 활용해 투입 변수가 숫자일 때 실행할 작업과, 그렇지 않을때 실행할 작업으로 나눠주는 것입니다.

is_numeric 실전 예제 feat. 워드프레스

아주 조금더 실전적인 예제를 살펴봅시다.

사용자에게 워드프레스 카테고리 슬러그 입력 받아 ID 알아내기

이런 상황을 가정해 봅시다.

워드프레스 숏코드를 하나 만드는데, 사용자에게 카테고리 ID 를 입력 받아 해당 카테고리의 포스트를 보여주는 숏코드 입니다. 그런데 사실상 카테고리의 ID 를 입력 받을 수도 있겠지만, 슬러그를 입력 받는 편이 사용자에게는 더 쉬울 수도 있겠죠?

그래서 사용자가 ID 혹은 슬러그 중 편한 것을 아무거나 입력해도 상관이 없도록 코드를 구성하기로 해봅시다.

실제로 is_numeric 사용하기

$cat = $atts['cat']

if ( is_numeric( $cat ) ) {
    //is_numeric = true
    //사용자가 카테고리 ID 를 입력 했을 경우
    //원하는 코드를 실행함 
}
else {
    //is_numeric = false
    //사용자가 카테고리 ID 가 아닌 슬러그를 입력한 것으로 판단해
    //슬러그를 이용해 카테고리의 ID 를 찾아낸 후 원하는 코드 실행
    $cat_id = get_category_by_slug( $cat )->term_id;
}

위 코드에서 중요한 부분은 else 부분(사용자가 카테고리 ID를 입력하지 않은 경우) 입니다. 이 경우에 사용자가 숫자를 입력한 것이 아니니 슬러그를 입력한 것으로 판단하고, 해당 슬러그를 이용해 카테고리의 ID 를 찾아내어 $cat_id 변수에 담아 사용하는 것입니다. 사용자가 카테고리 ID 를 입력했는지, 슬러그를 입력했는지 모르는 상황에서 is_numeric 이 큰 역할을 해주는 것입니다.

(예제에서 사용된 슬러그를 이용해 카테고리의 id 를 알아내는 get_category_by_slug 함수는 링크를 참고하세요)

참고자료