函式名:Ev::feedSignalEvent()
適用版本:Ev >= 1.0.0
用法:用於向事件迴圈新增一個訊號事件。當指定的訊號被接收到時,回撥函式會被觸發。
語法:bool Ev::feedSignalEvent(int $signum)
引數:
- $signum:訊號編號,可以是一個整數,表示要等待的訊號。
返回值:如果成功新增了訊號事件,則返回true,否則返回false。
示例:
<?php
// 建立一個事件迴圈物件
$loop = new EvLoop();
// 定義訊號事件的回撥函式
function signalHandler($signum)
{
echo "接收到訊號:{$signum}" . PHP_EOL;
// 可以在這裡執行對應訊號的處理邏輯
}
// 新增訊號事件到事件迴圈中,當接收到SIGINT訊號時,呼叫signalHandler函式
if (Ev::feedSignalEvent(SIGINT, 'signalHandler')) {
echo "SIGINT 訊號事件成功新增到事件迴圈中。" . PHP_EOL;
} else {
echo "SIGINT 訊號事件新增失敗。" . PHP_EOL;
}
// 開始事件迴圈
$loop->run();
?>
上述示例中,我們首先建立了一個事件迴圈物件$loop。然後定義了一個名為signalHandler的回撥函式,該函式被用作接收訊號的處理邏輯。
接下來,使用Ev::feedSignalEvent()函式將SIGINT訊號事件新增到了事件迴圈中,同時指定了回撥函式signalHandler。最後,透過呼叫$loop->run()來啟動事件迴圈。
當接收到SIGINT訊號時,signalHandler函式會被觸發,輸出接收到的訊號編號。