PHP의 sleep() 함수는 현재 실행 중인 스크립트를 일정 시간 동안 일시 중지할 때 사용하는 함수입니다. 특정 작업 사이에 대기 시간이 필요하거나, API 요청 제한(rate limit)을 피하기 위해 간격을 두고 처리해야 할 때 유용하게 활용됩니다.
문법(Syntax)
sleep(sec)
매개변수(Parameters)
sec − 스크립트 실행을 지연시킬 초 단위의 시간입니다. 정수형 값을 입력하며, 0보다 큰 값이어야 합니다.
반환값(Return)
sleep() 함수는 성공적으로 실행되면 0을 반환합니다. 만약 호출이 신호(signal)에 의해 중단된 경우, 남은 지연 시간(초)을 반환합니다.
사용 예제
아래 예제는 sleep() 함수를 사용하여 스크립트 실행을 지연시키고, 그에 따라 출력되는 시간이 어떻게 변하는지 보여줍니다.
<?php
echo date('h:i:s') . "<br>";
// 10초간 대기
sleep(10);
echo date('h:i:s') . "<br>";
// 5초간 대기
sleep(5);
echo date('h:i:s');
?>출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다. 첫 번째 출력 후 10초, 그 다음 출력 후 5초가 지난 시간이 표시되는 것을 확인할 수 있습니다.
02:54:50
02:54:52
02:54:57
참고 사항
sleep()은 초 단위로 지연시키며, 밀리초 단위의 더 짧은 지연이 필요하다면 usleep()(마이크로초 단위) 또는 time_nanosleep() 함수를 사용하는 것이 좋습니다.
웹 서버 환경에서 긴 지연 시간을 설정하면 PHP의
max_execution_time설정에 걸릴 수 있으므로 주의해야 합니다.지연 시간이 음수일 경우 PHP 8.0 이상에서는 ValueError가 발생합니다.