函数名称: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()
方法来手动触发它们。