현재 위치: > 최신 기사 목록> php is_int 함수는 루프에서 어떻게 사용됩니까?

php is_int 함수는 루프에서 어떻게 사용됩니까?

gitbox 2025-05-26

PHP 프로그래밍에서, 특히 루프 구조 (예 : foreach 또는 loops )를 처리 할 때 값이 정수인지 여부를 결정하는 것이 매우 일반적입니다. is_int ()는 변수가 유형 정수 ( int )의 값인지를 결정하는 내장 함수입니다. 함수 자체는 간단하지만 루프에 사용될 때 쉽게 간과되는 함정, 특히 배열 키, 양식 입력 또는 외부 데이터를 처리 할 때 종종 쉽게 간과되는 함정이 동반됩니다.

이 기사는 일반적인 오해 및 실제 예를 포함하여 정수를 판단하기 위해 루프에서 IS_INT ()를 올바르게 사용하는 방법에 대해 깊이 설명합니다.

1. is_int () 기본 구문

 is_int(mixed $value): bool

이 함수는 변수를 매개 변수로 사용하고 변수의 유형이 정수 (int) 인 경우 true를 반환하고 그렇지 않으면 False를 반환합니다.

예:

 $value = 10;
if (is_int($value)) {
    echo "정수입니다";
} else {
    echo "不정수입니다";
}

산출:

 정수입니다

2. Foreach 루프에서 is_int ()를 사용하십시오

실제 응용 분야에서는 종종 Foreach 에 트래버스 어레이를 사용합니다. 현재 배열 키에서 정수 판단이 이루어질 수 있습니다. 일반적인 시나리오는 혼합 어레이를 처리하거나 인덱스 어레이를 연관 배열과 구별하는 것입니다.

 $data = [
    0 => '사과',
    1 => '바나나',
    'a' => '주황색',
    '2' => '배'
];

foreach ($data as $key => $value) {
    if (is_int($key)) {
        echo "$key 정수입니다索引:$value\n";
    } else {
        echo "$key 예, 비 integer 색인:$value\n";
    }
}

산출:

 0 정수입니다索引:사과
1 정수입니다索引:바나나
a 예, 비 integer 색인:주황색
2 예, 비 integer 색인:배

참고 : 키 '2'는 정수처럼 보이지만 문자열 유형이며 is_int ()에 의해 정수로 판단되지 않습니다. 이것이 is_int ()를 사용할 때의 핵심 사항입니다.

3. 문자열 번호를 판단하는 문제를 해결하십시오

문자열 형성 숫자 (예 : '2' 와 같은)가 정수로 간주된다고 판단하려면 intval ()을 사용하여 ctype_digit () 또는 is_numeric ()을 사용해야합니다.

 $key = '2';

if (is_numeric($key) && (string)(int)$key === (string)$key) {
    echo "$key 정수로 간주 될 수 있습니다";
}

그러나 변수가 엄격한 정수 값인지 확인하려면 is_int ()가 가장 적합하고 안전한 선택입니다.

4. for 루프에서 is_int ()를 사용하십시오

for 루프 자체는 종종 정수 인덱스에 의존하지만 때로는 루프의 동작을 결정하기 위해 외부에 전달 된 데이터에 대한 판단이 필요합니다.

 $limit = $_GET['limit'] ?? 10;

if (!is_int($limit)) {
    $limit = (int)$limit; // 케이스
}

for ($i = 0; $i < $limit; $i++) {
    echo "1. $i 두 번째 루프\n";
}

양식 또는 URL 매개 변수를 통해 $ 한계를 전달하면 기본값은 문자열 유형입니다. is_int ()를 직접 사용하는 것은 판단에 실패하므로 판단하기 전에 유형 변환을 수행하거나 filter_var () 와 함께 사용해야합니다.

 $limit = $_GET['limit'] ?? 10;

if (filter_var($limit, FILTER_VALIDATE_INT) !== false) {
    $limit = (int)$limit;
} else {
    $limit = 10;
}

이 방법은 더 안전하고 사용자 입력 검증에 더 적합합니다.

예를 들어 방문 :

 https://gitbox.net/index.php?limit=5

루프는 5 회 실행됩니다.

5. 요약

  • is_int ()는 int 유형 값에 대해서만 true를 반환하고 '5' 와 같은 문자열 번호는 false를 반환합니다.

  • 배열 키가 Foreach 의 정수인지 판단 할 때 조심하십시오. 숫자 문자열은 정수 키로 처리되지 않습니다.

  • 사용자 입력은 일반적으로 문자열 유형이며 유형이 일관되도록 Filter_var () 또는 수동 변환을 사용하는 것이 좋습니다.

  • 정수처럼 보이는 문자열을 판단하려면 ctype_digit () 또는 기타 대안을 사용할 수도 있습니다.

루프 구조에서 is_int ()를 사용하는 것은 일반적인 유형 안전 점검 방법이지만 강력한 PHP 프로그램을 작성하려면 제한 사항 및 사용 시나리오를 이해해야합니다.