묻고답하기

아래와 같이 코딩했을 때 두 개의 소스가 왜 서로다른 결과가 나오는 것인지에 대한
질문을 올렸었습니다.
소스는...

<1번소스>
1행 <?
2행 $a=70;
3행 while($a<=80){
4행          if($a<=80){
5행                  echo $a."<br>";
6행                  $a++;
7행                        }
8행               else{
9행                      break;
10행                    }
11행               }
12행 ?>


<2번소스>
1행 <?
2행 while($a<=80){
3행 $a=70;
4행          if($a<=80){
5행                  echo $a."<br>";
6행                  $a++;
7행                        }
8행               else{
9행                      break;
10행                    }
11행               }
12행 ?>

와 같은데요...
왜 다르게 출력되는지에 대한 답변을 ...

1번소스는 70~80까지 정상적으로 출력이되고,
2번소스는 70만 계속 반복되는 무한루프로 출력된다

라는 답변을 해주시더라구요, 물론 구체적으로 친절히 설명과 함께 답변을 해주셨는데,
제가 정말 궁금한 사항은

1번소스의 경우에 6행의 $a++; 라는 증가식에 의해서 3행의 $a값이 1씩 증가하여(물론 2행이 $a값도 증가하는것이 맞겠죠?) 3행의
$a값을 4행의 $a에서도 그대로 할당받아서 출력되는 값이 70 부터 80까지 출력되는 되는
거잖아요...

마찬가지로 2번소스의 6행에서 $a++; 라는 증가식에 의해 증가된 값이 2행 $a에 저장되어
3행과 4행의 $a에서도 그대로 할당받아 70부터 80까지 출력되는 걸로 생각이 되거든요..
그런데, 왜 2번소스의 6행의 $a++; 증가식에 의해 3행의 $a의 값은 71,72,73...이렇게
값이 증가되지 않고, 무한루프가 되는건가요??
원래 구문내에서 연산된 변수 값은 "변수=변수값" 형식에는 영향을 안주는 것인가요??