查詢

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

「 設定定時器的回撥函式和觸發時間間隔 」


PHP函式名:EvTimer::set()

適用版本:此函式適用於PHP版本5.3.0及以上,並且需要安裝libev擴充套件。

用法:EvTimer::set()函式用於設定定時器的回撥函式和觸發時間間隔。

語法:bool EvTimer::set(float $after, float $repeat, callable $callback, mixed $data = NULL)

引數:

  • $after:定時器的第一個觸發時間延遲,單位為秒(可以是浮點數,支援毫秒級別的精度)。
  • $repeat:定時器的觸發時間間隔,單位為秒(可以是浮點數,支援毫秒級別的精度)。
  • $callback:表示定時器觸發時要執行的回撥函式。可以使用匿名函式或普通函式。
  • $data:(可選)表示傳遞給回撥函式的額外引數。

返回值:成功設定定時器返回true,否則返回false。

示例:

// 建立一個libev事件迴圈
$loop = new EvLoop(); 

// 定義回撥函式
function myTimerCallback($w, $revents) {
    echo "定時器觸發\n";
    // 在回撥函式中可執行任何你想要的操作
}

// 建立一個定時器物件並設定引數
$timer = EvTimer::set(2.5, 0.5, 'myTimerCallback'); 

// 將定時器加入事件迴圈
ev_timer_start($loop, $timer); 

// 進入事件迴圈,等待定時器觸發
ev_loop($loop); 

// 當指令碼執行到此處時,定時器已經觸發,並執行了回撥函式

上述示例中,我們建立了一個libev事件迴圈,然後定義了一個名為myTimerCallback的回撥函式。接著,透過EvTimer::set()函式設定了一個定時器,指定了第一個觸發時間延遲為2.5秒,觸發時間間隔為0.5秒,並傳入了回撥函式myTimerCallback。

最後,我們將定時器加入事件迴圈並啟動事件迴圈,當時間達到設定的觸發時間時,定時器會觸發回撥函式myTimerCallback,並在控制檯輸出"定時器觸發"。

補充糾錯
上一個函式: EvTimer::createStopped()函式
下一個函式: EvWatcher::clear()函式
熱門PHP函式
分享連結