是否可以在 PHP 中实现事件驱动程序?
类似于 javascript 的东西。
例如,尝试打开一个socket(open_socket)
并执行一些其他的command(do_something_else)
,而不是等待socket请求的成功响应。
得到成功响应后执行callback_execute
。
//--------------------------------------------------------------------
public function open_socket(){
$this->socketResource = fsockopen($this->nodeIp,$this->portNumber);
}
public function callback_execute(){
fputs($this->socketResource,$command);
}
public function do_something_else{ xxxxx }
//--------------------------------------------------------------------
Non_blocking_function($obj->open_socket(),$obj->callback_execute());
$obj->do_something_else();
最佳答案
PHP 中只有一个线程。因此在 PHP 中不可能在等待某些事件的同时做一些有用的事情。
一些解决方法可用但可能不是很可靠——尤其是当您计划编写可移植代码时。我认为变通办法是有风险的,因为该语言没有并发的概念。因此,最好用另一种语言(Java、Scala 等)编写多线程代码,并仅使用 PHP 来显示准备好的结果(如果完全使用 PHP 来解决此类问题)。
关于php - 如何在 PHP 中实现事件驱动代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8885719/