while(!feof($filename)) 과 continue
본문
안녕하세요
일반적인 while문에서는 while문 하단부에 증감부(예를 들면$i++)가있어서 루프를 다음 으로 돌리는데
그러한 상태에서 continue는 제대로 다음으로 넘어가게 한다는 거을 알고있는데
while(!feof($filename)) 문에서는 안에 증감부가 없이 continue 가 그 다음으로 넘어가게 하나요?
아래의 while문에는 분명 증감부가 없는데 아래같은 while문에도 continue가 적용되는가요?
<?php
$myfile = fopen("webdictionary.txt", "r") or die("열지못함");
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>
답변 2
잘쓰지 않는 용어를 쓰시는데, 증감부라는게 $i++ 같은걸 얘기하시는건가요?
루프문은 조건이 충족될때까지 순회합니다. 루프문은 모두 continue break 명령이 유효합니다.
eof는 파일포인터의끝 즉 파일의끝을 체크하는 함수입니다. read를 할때마다 파일포인트는 이동됩니다. read 작업전에 continue 하면 eof에 도달하지 않음으로 무한루프가 됩니다. 일단 fgets로 read한후에 조건을 판단하여 continue하셔야합니다.
while 문 안에 들어가는 문구는 조건식입니다. false, 0, null 인 경우 종료되게 됩니다.(php 기준)
foef 는 파일의 끝인지를 체크합니다. 앞에 ! 이 붙었으니, 파일의 끝이 아닌 경우가 loop 조건이 됩니다.
결국 저 코드는 파일을 열어서, 파일끝에 도달할때까지 echo 를 하게됩니다.
답변을 작성하시기 전에 로그인 해주세요.