PHP在对象属性中存储引用(不能通过引用分配给重载对象)

时间:2014-09-18 21:50:31

标签: php resources object-properties

所以我一直试图让一个使用PHP的IRC机器人在本地运行。但是,我希望它能够从站点检索信息,并定期发布此信息。所以我安装了pthreads来做到这一点。但是,我在引用变量方面遇到了一些麻烦。

这是我在尝试将僵尸程序连接到频道时遇到的错误。

  

致命错误:无法通过引用分配C:\ Apache24 \ htdo中的重载对象   第128行的cs \ muhbot.php

以下是它给我一个错误的代码。第128行是__construct()函数的最后一行。

class recheck extends Thread {
    var $lastCheck,$bot;
    public function __construct(&$bot){
        $this->lastCheck = microtime(true);
        $this->bot = &$bot;
    }

$ bot是管理IRC连接的类对象。该类由该类中的函数创建。

function startCheck()
{
    $ReChecker = new recheck($this);
    $ReChecker->start();
}

我试图将主类作为参考传递,但不断从上面得到致命错误。为什么我会收到此错误,我该如何修复/解决它?

1 个答案:

答案 0 :(得分:0)

传递给recheck构造函数的$this是对当前对象的引用,并通过引用传递(Are PHP5 objects passed by reference?)。

摆脱所有&它应该按预期工作

   public function __construct($bot){
    $this->lastCheck = microtime(true);
    $this->bot = $bot;
  }