Предупреждение: Вы должны заметить, что хотя команда sleep
может привести к зависанию процесса PHP или «спящему режиму» в течение заданного промежутка времени, вы обычно реализуете визуальные задержки в интерфейсе пользователя ,
Поскольку PHP является языком на стороне сервера, просто записывает результаты своего выполнения (обычно в форме HTML) в ответ веб-сервера: использование режима сна таким образом обычно просто останавливает или задерживает ответ.
С учетом сказанного, сон имеет практические цели. Отложенное выполнение может использоваться для реализации схем отмены, например, при повторной попытке запроса после неудачного соединения. Вообще говоря, если вам нужно использовать setTimeout в PHP, вы, вероятно, делаете что-то не так.
Решение: Чтобы ответить на ваш вопрос в явном виде: поскольку setTimeout имеет два параметра, один из которых представляет функцию, которую нужно запустить, а другой - количество времени (в миллисекундах). Следующий код фактически соответствует функциональным требованиям вашего вопроса:
<?php
// Build the setTimeout function.
// This is the important part.
function setTimeout($fn, $timeout){
// sleep for $timeout milliseconds.
sleep(($timeout/1000));
$fn();
}
// Some example function we want to run.
function someFunctionToExecute(){
echo 'The function executed!';
}
// This will run the function after a 3 second sleep =>
// We're using an anonymous function to wrap the function
// which we wish to execute.
setTimeout(function(){
someFunctionToExecute();
}, 3000);
?>
Вывод вышеуказанного кода будет с задержкой в три секунды, после чего последует следующий вывод:
Функция выполнена!