函式:EvSignal::createStopped()
適用版本:EvExtension >= 1.0
用法: EvSignal::createStopped() 函式用於建立一個已停止的 EvSignal 事件監聽器物件。
示例:
<?php
$loop = new EvLoop();
$signal = EvSignal::createStopped(SIGINT, function ($signal) use ($loop) {
echo "Received SIGINT signal\n";
// 停止事件迴圈
$loop->stop();
});
// 啟動事件監聽器
$signal->start();
// 停止事件監聽器
$signal->stop();
// 開始事件迴圈
$loop->run();
echo "Event loop stopped\n";
?>
在上面的示例中,建立了一個已停止的 EvSignal 事件監聽器物件,用於監聽 SIGINT 訊號。當接收到 SIGINT 訊號時,會在回撥函式內部列印一條訊息,並透過呼叫 $loop->stop() 停止事件迴圈。最後,列印出 "Event loop stopped" 訊息表示事件迴圈已停止。
請注意,雖然事件監聽器被建立為已停止狀態,但我們仍然需要手動呼叫 $signal->start() 方法來啟動事件監聽器。如果沒有呼叫 $signal->start() 方法,事件監聽器將不會起作用。