подскажите пожалуйста как сделать функцию задержки для функции задержки!
DelayCommand(functionToDelay, Delaytime);
..?в php 5.3 +
спасибо за любую помощь
function delayCommand($callback, $delayTime) { sleep($delayTime); $callback(); }
Если вы хотите, чтобы это было сделано асинхронно, посмотрите мой ответ здесь: Планирование php-скриптов
Для вашей информации, вот список связанных функций:
sleep()
usleep()
time_sleep_until()
time_nanosleep()
function delayCommay($function, $nano){ usleep($nano); $function(); }
Подойдет, однако синхронно.Поэтому, если вы сделаете вызов delayCommand, весь ваш сценарий будет отложен до тех пор, пока не будет выполнена команда.
delayCommand
Это должно работать, рассмотрите возможность переключения sleep() на usleep().
function DelayCommand($functionToDelay, $delayTimeInSeconds) { sleep($delayTimeInSeconds); $functionToDelay(); } DelayCommand(function() { echo "yes"; }, 5);
(код не проверен)
Вот что у меня есть для задержки функции в MS, Sleep и Usleep приостанавливают выполнение всего скрипта, похоже, это работает довольно хорошо
public function DelayTime($ms){ $now = microtime(); $finishtime = ($now + $ms); while($now < $finishtime){ $now = time(); if($now >= $finishtime){ break; } } return true; }