Функция задержки PHP - PullRequest
       5

Функция задержки PHP

3 голосов
/ 24 июля 2011

подскажите пожалуйста как сделать функцию задержки для функции задержки!

DelayCommand(functionToDelay, Delaytime);

..?в php 5.3 +

спасибо за любую помощь

Ответы [ 5 ]

3 голосов
/ 24 июля 2011
function delayCommand($callback, $delayTime) {
    sleep($delayTime);
    $callback();
}
1 голос
/ 24 июля 2011

Если вы хотите, чтобы это было сделано асинхронно, посмотрите мой ответ здесь: Планирование php-скриптов

Для вашей информации, вот список связанных функций:

  • sleep() / usleep() - Сон в течение (микро) секунд.
  • time_sleep_until() - Сон до отметки времени.
  • time_nanosleep() - Сон на количество секунд и наносекунд.
1 голос
/ 24 июля 2011
function delayCommay($function, $nano){
    usleep($nano);
    $function();
}

Подойдет, однако синхронно.Поэтому, если вы сделаете вызов delayCommand, весь ваш сценарий будет отложен до тех пор, пока не будет выполнена команда.

1 голос
/ 24 июля 2011

Это должно работать, рассмотрите возможность переключения sleep() на usleep().

function DelayCommand($functionToDelay, $delayTimeInSeconds) {
    sleep($delayTimeInSeconds);
    $functionToDelay();
}

DelayCommand(function() { echo "yes"; }, 5);

(код не проверен)

0 голосов
/ 08 марта 2017

Вот что у меня есть для задержки функции в MS, Sleep и Usleep приостанавливают выполнение всего скрипта, похоже, это работает довольно хорошо

    public function DelayTime($ms){ 
         $now = microtime();
         $finishtime = ($now + $ms);

         while($now < $finishtime){ 
             $now = time();
             if($now >= $finishtime){ break; }
         }
         return true;
     }
...