php 정수의 오버플로우 타입 변환에 관해 질문하고 싶습니다.

조회수 500회

php에서 오버플로우가 발생하면 자동으로 타입 변환이 된다는데, 정수형 변수의 표현 범위를 초과하는 경우 발생되는 오버플로우와 데이터 타입 변환 결과를 확인할 수 있는 프로그램을 작성하였습니다. 예상 결과로는

1.변수 $num의 출력 결과 : int(2147483647)

2.변수 $num +1의 출력 결과 : float(2147483648)

이렇게 되어야 하는데 2번의 결과가

2.변수$num +1의 출력 결과 : int(2147483648)

이렇게 형변환이 되지 않은 결과가 나옵니다. 왜 그런건가요?

(공부하고 있는 책의 예제 코드를 그대로 옮긴 것입니다.)

<?php //정수의 오버플로우 타입 변환
    echo "<br>▲ 정수의 오버플로우 타입 변환<br>";
    echo"============================<br>";
    $num=2147483647;
    echo"1.변수 \"\$num\"의 출력 결과 : ";
    var_dump($num);     // 선언된 변수의 데이터 타입과 값 출력
    echo"<br>......[정수형으로 출력]<br><br>";
    echo"============================<br>";
    $num+=1;
    echo"2.변수 \"\$num +1\"의 출력 결과 : ";
    var_dump($num);
    echo"<br>......[실수형으로 출력]<br><br>";
?>

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)