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

标签 php javascript events

是否可以在 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/

相关文章:

Javascript 使语句动态化

events - 记录*业务*事件 - 使用日志框架?

list - Flex4列表项双击事件

jquery - 将 Select2 应用到 Slickgrid 编辑器

php - 无法将 facebook 包含在我的 codeigniter 项目中

java - 如何增加curl GET请求url大小限制?

php - 将PHP中选定的多个值插入到另一个表中

php - 是否可以将 html 类添加到 phpMyEdit 生成的表中?

javascript - 如何从 Windows 8/10 WInJS 应用程序在 IE 而不是 Edge 中启动 URL

javascript - 如何将点击事件绑定(bind)到对象标签?