是否可以在PHP中实现事件驱动程序?
像javascript这样的东西。
例如,尝试打开socket(open_socket)
并执行其他command(do_something_else)
,而不是等待套接字请求的成功响应。
获得成功响应后执行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();
答案 0 :(得分:3)
PHP中只有一个线程。因此,在PHP中无法做一些有用的事情。
有些解决方法可用,但可能不太可靠 - 尤其是在您计划编写可移植代码时。我认为这些解决方法存在风险,因为该语言没有并发概念。因此,最好用另一种语言(Java,Scala,...)编写多线程代码,并使用PHP只显示准备好的结果(如果完全使用PHP来解决这些问题)。