PHP版本:7.0.0及以上
EvSignal::set()函式是在libev擴充套件中定義的,用於設定一個訊號事件的回撥函式。
用法: EvSignal::set(int $signum, callable $callback [, int $priority = 0]) : void
引數:
- $signum:表示要處理的訊號的編號,通常使用預定義常量(例如SIGTERM、SIGHUP等),也可以使用具體的訊號編號。
- $callback:表示當訊號觸發時要執行的回撥函式,可以是一個函式名的字串、一個匿名函式或者一個陣列(陣列的第一個元素表示物件,第二個元素表示方法名)。
- $priority(可選):表示回撥函式的優先順序,預設為0(最低優先順序),優先順序較高的回撥函式將在同一訊號觸發時先被執行。
示例:
// 建立一個EventBase物件和一個EvSignal物件
$base = new EventBase();
$signal = new EvSignal(SIGTERM, function() {
echo "SIGTERM訊號被觸發了\n";
});
// 將EvSignal物件關聯到EventBase物件
$signal->set($base);
// 在EventBase的事件迴圈中執行
$base->loop();
在上面的示例中,我們建立了一個EventBase物件和一個EvSignal物件。透過設定EvSignal的回撥函式來處理SIGTERM訊號。然後,我們將EvSignal物件與EventBase物件關聯,並在EventBase物件的事件迴圈中執行。當收到SIGTERM訊號時,回撥函式被觸發並輸出一條訊息。
請注意,上述示例只是一個簡單的演示,實際應用中可以根據需要設定更復雜的事件處理邏輯。