Поэтому я пытался заставить бот IRC работать с PHP, чтобы он работал локально. Однако я хочу, чтобы он мог извлекать информацию с сайта и периодически публиковать эту информацию. Поэтому я установил pthreads для этого. Тем не менее, у меня возникли проблемы с ссылками на переменные.
Это ошибка, которую я получаю при попытке подключить бота к каналу.
Неустранимая ошибка: невозможно присвоить по ссылке перегруженному объекту в C: \ Apache24 \ htdo
cs \ muhbot.php в строке 128
Вот код, который дает мне ошибку. Строка 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();
}
Я пытаюсь передать основной класс в качестве ссылки, но продолжаю получать фатальную ошибку сверху. Почему я получаю эту ошибку, и как я могу исправить / обойти ее?
$this
то, что вы передаете в конструктор recheck, является ссылкой на текущий объект и передается по ссылке (Передаются ли объекты PHP5 по ссылке?).
Избавиться от всех ваших &
это должно работать как ожидалось
public function __construct($bot){
$this->lastCheck = microtime(true);
$this->bot = $bot;
}
Других решений пока нет …