如何在PHP中实现事件驱动的代码?

时间:2012-01-16 20:13:56

标签: php javascript events

是否可以在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(); 

1 个答案:

答案 0 :(得分:3)

PHP中只有一个线程。因此,在PHP中无法做一些有用的事情。

有些解决方法可用,但可能不太可靠 - 尤其是在您计划编写可移植代码时。我认为这些解决方法存在风险,因为该语言没有并发概念。因此,最好用另一种语言(Java,Scala,...)编写多线程代码,并使用PHP只显示准备好的结果(如果完全使用PHP来解决这些问题)。