我手头有一个非常麻烦的问题。我正在使用在PHP中运行的Web套接字服务器。问题是我需要能够使用类似于JavaScript的setInterval / setTimeout函数,但是在我的php套接字服务器中。
我没有时间或资源将我的整个项目转换为nodejs / javascript。这需要永远。我非常喜欢php,我不想进行切换。其他一切正常,我觉得不值得重新编写所有内容只是因为我不能在php中使用类似的setInterval函数。
由于php套接字服务器在shell中运行,我可以使用循环使用setInterval类型函数: http://pastebin.com/nzcvXRph
这段代码确实按预期工作,但是对于资源来说似乎有些过分,我觉得循环会吸引大量资源。
无论如何我可以从源代码重新编译PHP并包含一个“while2”循环,它只会每500毫秒而不是立即迭代一次?
答案 0 :(得分:-1)
我认为没有办法从源代码重新编译PHP。
如果您想延迟循环的执行,可以使用sleep
函数,该函数用于延迟执行。
例如,我希望每2秒后打印10个数字,然后下面的代码就可以完成这项工作。
for($i=0;$i<=10;$i++)
{
print($i++);
sleep(2);
}
检查PHP文档here。
修改
跟进我在回复中提到的内容,如果您希望用户拥有自己的运行时实例,那么线程就是一个选项。 PHP中的多线程应用程序的示例非常有限,我建议查看JAVA中的一些示例,它不应该难以理解。 Here是一个很好的视频教程。
对于PHP
查看贡献者的说明,有时人们会写出好的例子。