函式:EventHttp::setDefaultCallback() 適用版本:PHP 7.3.0及以上
函式說明: EventHttp::setDefaultCallback()函式用於設定EventHttp的預設回撥函式。在沒有特定回撥函式被指定時,將會呼叫預設回撥函式。預設回撥函式必須符合特定的格式,並接受EventHttpRequest物件作為引數。
用法: bool EventHttp::setDefaultCallback ( callable $cb )
引數說明:
- $cb:可呼叫物件,用於指定預設回撥函式。
返回值: 該函式返回布林值,表示設定預設回撥函式是否成功。
示例程式碼:
<?php
// 建立EventHttp物件
$base = new EventBase();
$http = new EventHttp($base);
// 定義預設回撥函式
$defaultCallback = function($req, $arg) {
// 處理HTTP請求
// ...
// 傳送HTTP響應
// ...
};
// 設定預設回撥函式
EventHttp::setDefaultCallback($defaultCallback);
// 繫結監聽地址和埠
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, '127.0.0.1', 8080);
socket_listen($socket);
// 建立Event物件並新增監聽,指定回撥函式
$event = new Event($base, $socket, Event::READ | Event::PERSIST, function($socket, $flags, $arg) use ($http) {
$http->accept($socket);
});
$event->add();
// 執行事件迴圈
$base->loop();
在上面的示例程式碼中,首先建立了一個EventHttp物件並將其與一個EventBase物件相關聯。然後,定義了一個預設的回撥函式$defaultCallback,該回撥函式接受一個EventHttpRequest物件作為引數,可以在回撥函式中處理HTTP請求和傳送HTTP響應。接著,透過呼叫EventHttp::setDefaultCallback()函式來設定預設回撥函式。然後,繫結監聽地址和埠,建立一個Event物件並新增監聽,指定事件發生時要執行的回撥函式。最後,執行事件迴圈,等待事件的發生和處理。
請注意,EventHttp::setDefaultCallback()函式需要PHP 7.3.0及以上版本的支援。