У меня есть следующий код, где я пытаюсь присвоить значение массиву в классе, который использует php pthreads безрезультатно - я рассмотрел решения, предлагающие использовать стеки без каких-либо помогло либо:Невозможно присвоить значение массиву с помощью PHP pthreads
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(E_ALL);
class WorkerThreads extends Thread
{
private $fromlist;
public function __construct()
{
$this->fromlist = array();
}
public function run()
{
$this->fromlist=array("hello"=>1,2);
$this->fromlist['hi']="!!!";
$this->fromlist[] = array("ho", 1);
}
}
$workers = new WorkerThreads();
$workers->start();
print_r($workers);
Я получаю следующие результаты:
WorkerThreads Object
(
[fromlist] => Array
(
[hello] => 1
[0] => 2
)
)
Я ожидал увидеть дополнительные элементы массива - попробуйте, как я могу, я не могу получить его, чтобы добавить больше элементов.
Я проверил синтаксис, и это кажется прекрасным - проблема заключается в том, как использовать массив в pthreads - я не могу понять, как это сделать.
Может ли кто-нибудь сказать мне, что я делаю неправильно?
Или предложите какой-либо код для вышесказанного, чтобы я мог добраться до рабочего решения?
Почему вы делаете 'private $ fromlist = array();' внутри вашего метода '__construct()'?? – Darren
Typo .. во время отладки Я забыл удалить это ... Он все еще не работает - я думаю, что массивы не могут быть сериализуемыми в многопоточности ... –
Возможный дубликат [Класс PHP/pthreads Thread не может использовать массив?] (http://stackoverflow.com/questions/14796674/a-php-pthreads-thread-class-cant-use-array) –