首页 > 解决方案 > 当 PHP 等待用户输入时,如何定期调用函数?

问题描述

请注意,我不希望使用任何臃肿的库,例如“ReactPHP”。我只是想知道如何在实际的 PHP 代码中做到这一点。

我有什么相当于这段代码:

echo 'Hello' . PHP_EOL;
$input = fgets(STDIN);
echo 'man' . PHP_EOL;

function test()
{
  // do stuff
}

它打印“Hello”,等到用户按下 Enter,然后打印“man”。test() 永远不会被调用。

我希望这样做,以便在循环中调用 test(),在每次调用之间等待 5 秒。这本身不是问题,但是让 PHP (7.4.1) 在等待用户输入的同时实际执行该逻辑。它不能在 $input 行之前或之后完成,但必须在该行“内部”完成......这意味着 fgets() 或包装函数必须以某种方式支持这一点?

我已经看到过旧的堆栈问题,其中有非常奇怪的“解决方案”。相反,我希望有一种干净、好的方式来做到这一点,我希望现在可以实现。

标签: php

解决方案


推荐阅读