2015-06-12 48 views
0

我有以下的代碼,我試圖在一個類中使用php pthreads無效的數組中分配一個值 - 我已經看過解決方案,建議使用堆棧到no果之一:不能分配值使用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中使用數組 - 我似乎無法理解如何做到這一點。

誰能告訴我我做錯了什麼?

或者爲上述建議一些代碼,以便我可以找到一個可行的解決方案?

+0

爲什麼要在'__construct()'方法內部執行'private $ fromlist = array();'? – Darren

+0

錯字...調試時,我忘了刪除...它仍然無法正常工作 - 我認爲數組可能不能在多線程中序列化... –

+1

[PHP/pthreads線程類不能使用數組? (http://stackoverflow.com/questions/14796674/a-php-pthreads-thread-class-cant-use-array) –

回答

1

將$ fromlist變量添加到run()函數可以解決問題。