函式名稱:EvWatcher::invoke()
適用版本:Ev 1.2.0及更高版本
用法:此函式用於主動觸發一個事件迴圈中的監視器(watcher)。它將立即啟用監視器並執行相應的回撥函式。
語法: bool EvWatcher::invoke(int $revents) : bool
引數:
- $revents:一個整數值,表示觸發事件的型別。可以使用Ev::READ、Ev::WRITE、Ev::SIGNAL等常量進行位操作以指定多個事件。
返回值: 如果成功啟用了監視器並執行回撥函式,則返回true。否則,返回false。
示例:
<?php
// 建立一個讀事件的監視器
$readWatcher = new EvIo(STDIN, Ev::READ, function ($watcher) {
echo "stdin is readable".PHP_EOL;
});
// 開始事件迴圈
Ev::run();
// 手動觸發讀事件的監視器
$readWatcher->invoke(Ev::READ);
?>
上述示例中,我們建立了一個讀事件監視器,監視器會在標準輸入流(STDIN)可讀時執行回撥函式並輸出一條訊息。然後,透過呼叫invoke()
方法手動觸發監視器,以演示如何主動觸發監視器。在實際使用時,你可以根據需要使用適當的事件型別和回撥函式建立事件監視器,並透過呼叫invoke()
方法來手動觸發它們。