查詢

EvTimer::__construct()函式—用法及示例

「 建立一個新的 EvTimer 物件,並將其與指定的回撥函式和定時器間隔關聯起來 」


PHP函式名:EvTimer::__construct()

函式描述:EvTimer::__construct() 是一個建構函式,用於建立一個新的 EvTimer 物件,並將其與指定的回撥函式和定時器間隔關聯起來。

用法:

__construct ( float $after , float $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

引數:

  • $after:表示定時器首次觸發的延遲時間,單位為秒。
  • $repeat:表示定時器重複觸發的時間間隔,單位為秒。
  • $callback:表示回撥函式,當定時器觸發時被呼叫。
  • $data:可選引數,傳遞給回撥函式的額外資料。
  • $priority:可選引數,表示定時器的優先順序,數值越低優先順序越高。

示例:

// 建立一個定時器,每隔2秒執行一次回撥函式
function timerCallback($timer, $repeats) {
    echo "Timer callback is called\n";
    
    if ($repeats == 0) {
        // 取消定時器
        $timer->clear();
    }
}

$loop = EvLoop::defaultLoop();

$timer = new EvTimer(0, 2, 'timerCallback', false, 1);
// 引數說明:
// - 延遲時間為0秒,立即執行
// - 重複觸發時間間隔為2秒
// - 回撥函式為 timerCallback
// - 額外資料為 false
// - 優先順序為1

$loop->run();

注意事項:

  • $after 和 $repeat 引數值可以為小數,表示毫秒級別的精度。
  • 回撥函式可以是函式名字的字串,也可以是符合呼叫標準的閉包函式。
  • $priority 引數預設為0,表示普通優先順序。可以設定為負數或正數來調整優先順序。
  • 呼叫 $timer->clear() 方法可以在回撥函式內部取消定時器。
  • 定時器物件可以透過 $timer->again() 方法重新啟動已經取消的定時器。
補充糾錯
上一個函式: EvWatcher::feed()函式
下一個函式: EvWatcher::getLoop()函式
熱門PHP函式
分享連結