2

到达PHP服务器。计算请求数的代码:

$counter = 0;

$app = function ($request, $response) use ($counter){        
    $response->writeHead(200, array('Content-Type' => 'text/plain'));
    $response->end($counter);
    $counter++;
};

$loop = React\EventLoop\Factory::create();
$socket = new React\Socket\Server($loop);
$http = new React\Http\Server($socket, $loop);

$http->on('request', $app);
echo "Server running at http://127.0.0.1:1337\n";

$socket->listen(1337);
$loop->run();

对于每个请求,计数器保持为 0,如何使 $counter 变量对服务器的所有请求保持不变?

4

1 回答 1

1

只需在 $counter 前加上 &-sign 即可通过引用传输:

$counter = 0;

$app = function ($request, $response) use (&$counter){        
    $response->writeHead(200, array('Content-Type' => 'text/plain'));
    $response->end($counter);
    $counter++;
};

$loop = React\EventLoop\Factory::create();
$socket = new React\Socket\Server($loop);
$http = new React\Http\Server($socket, $loop);

$http->on('request', $app);
echo "Server running at http://127.0.0.1:1337\n";

$socket->listen(1337);
$loop->run();

傻我...

于 2017-01-05T09:44:02.353 回答