2017-09-25 54 views
0

最近我開始在php中學習多線程。我好奇如何螺紋類使用對象作爲陣列在下面的代碼螺紋類的pthreads如何將對象當作數組對待

<?php 
$safe = new Threaded(); 

while (count($safe) < 10) { 
    $safe[] = count($safe); 
} 

var_dump($safe->chunk(5)); 

如果我應用相同的邏輯在一個普通的類它給出了一個致命的錯誤。

Fatal error: Cannot use object of type XYZ as array 
+0

是你的實際錯誤還是XYZ被別的東西代替? – GrumpyCrouton

+0

嗯,我正在做一個普通的類,並將其用作一個數組並得到錯誤 –

回答

0

PHP提供了Iterator接口,讓您的自定義類與foreach循環工作,等

您需要實現所有五種上市接口方法

  • 當前
  • 關鍵
  • 未來
  • 倒帶
  • 有效

你內心的每一種方法做什麼,完全由你 - 通常他們用來揭露一個數組,否則私人的對象,或提供一些額外的過濾的/ etc 。文檔中有很多例子。

任何這樣的對象都可以使用iterator_to_array函數將其可迭代內容複製到本機數組中。

對於來自pthreads的Threaded類,它是一個內部PHP類,它直接實現Traversable接口。這在用戶土地上是不可能的。