나는 PHP에 익숙하지 않고 제 첫 번째 언어입니다. 그래서 내 질문은 매우 기본적인 것 같습니다.명시 적 증가/카운터 (기본)가없는 루프 while
먼저 while 루프의 기본 개념이 나에게 꽤 분명해 보입니다. "크래시 조건"(i < 10)이 참이 될 때까지 i 증분 (i ++)하는 한.
하지만 실제로 명시적인 증분없이 다음 코드 예제가 작동하는지 궁금합니다.
$originals = "originale";
$thumbnails="thumbnails";
$directory = opendir($originale);
$images = array();
while(($file = readdir($directory)) !== false) {
if(preg_match("/\.jp?g$/i", $file)){
$images[] = $file;
}
}
echo "<pre>";
var_dump($images);
echo "</pre>";
closedir($directory);
분명히 나는 뭔가를 놓쳤다. 그것은 마술처럼 보입니다. 첫 번째 파일을 반환하는 무한 루프가 필요할 것입니다 ...?
내 영어에도 불구하고 (유감스럽게도) 질문이 분명해지기를 바랍니다. 미리 감사드립니다.
'while'-loops run * while * 중괄호 안의 조건이 참입니다. 이 경우 조건은'($ file = readdir ($ directory))'이다.이 파일은 디렉토리에서 $ file에 새로운 파일 이름을 할당하려고 시도하며, 전체적으로는 새로운 파일이 없다면 false를 반환한다. **하지만 : ** 기본 코드에 대한 설명은 SO에 대한 주제를 벗어났습니다. - 튜토리얼 사이트가 아닙니다. [원하는 검색 엔진]은 사용자의 요구에 더 잘 맞는 몇 가지 기능을 제공합니다. –
while 루프는 증분 값을 가질 필요가 없기 때문에 루프를 깨는 _something_이있는 한이 경우에는'$ file'이 false로 설정됩니다. – Epodax
readdir은 포인터를 앞으로 이동시키고 포인터가 디렉토리의 끝에 도달하면 false를 반환합니다. –