PHP如何在类运行时从类中调用方法?

时间:2014-11-20 16:40:13

标签: php class

我在PHP中有一个脚本,可以永久地完成一些工作。

<?php
require_once 'ClassA.php'; 
$a= new ClassA($param1, $param2);
$a->start();
$a->setColor("blue");
while (1) {
    echo $a->getColor();
}
?>

如何在收到GET / POST请求时更改$ a oject的颜色?

<?php
if(isset($_GET["color"])){
    $color= $_GET["color"];
    $a->setColor($color); <<<--- Something like this
}
?>

谢谢!

1 个答案:

答案 0 :(得分:0)

你的“永远脚本”在自己的线程中运行,无论外面世界发生什么。你无法像这样影响它所做的任何事情。您需要专门编写脚本以响应外部影响,并为外部世界提供与脚本交互的机制。有很多可能性:

  • 脚本在每次迭代时读取文件的内容,然后你写一些文件(非常粗糙)
  • 与数据库相同(仍然粗糙)
  • 与内存商店相同(更好,仍然粗糙)
  • 你听管道或插座并写入(更好)
  • 你使用脚本监听的某些特殊中断信号(到达某处)
  • 你使用一些异步套接字通信,例如ØMQ,Gearman等(非常好)

最好的方法取决于您想要达到的目标以及您知道/愿意学习的技术。

这里的术语是“事件循环”。目前你只有一个“循环”;你希望得到那个循环来对事件做出反应。诸如“文件内容已更改”,“收到中断信号”,“有东西写入我的管道”等事件。