函式名稱:EvWatcher::getLoop()
適用版本:PHP 5 >= 5.4.0, PHP 7, PECL ev >= 0.2.0
函式說明:獲取當前EvWatcher所關聯的EventLoop物件。EventLoop物件用於處理事件迴圈和排程事件回撥。
用法:
public function getLoop(): EventLoop
引數說明:該函式沒有引數。
返回值:返回一個EventLoop物件,該物件用於管理事件迴圈。
示例:
$loop = new EvLoop();
// 建立一個IO事件觀察者
$ioWatcher = new EvIo(STDIN, Ev::READ, function ($watcher, $revents) {
// 讀取輸入並處理
$input = fgets(STDIN);
echo "Received: " . $input . PHP_EOL;
// 停止事件迴圈
$watcher->getLoop()->stop();
});
// 獲取與IO事件觀察者關聯的EventLoop物件
$eventLoop = $ioWatcher->getLoop();
echo "The EventLoop object type is: " . get_class($eventLoop) . PHP_EOL;
// 啟動事件迴圈
$eventLoop->run();
在上述示例中,我們建立了一個EvIo事件觀察者。在回撥函式中,我們從標準輸入流中讀取使用者輸入,並將其列印輸出。然後,透過呼叫getLoop()
方法獲取與事件觀察者關聯的EventLoop物件,並將其賦值給變數$eventLoop
。我們還使用get_class()
函式獲取EventLoop物件的類名並輸出。最後,我們啟動了事件迴圈,等待使用者輸入並處理。當使用者輸入後,透過呼叫stop()
方法來停止事件迴圈。