线程类的pthreads如何将对象视为数组

时间:2017-09-25 15:26:27

标签: php multithreading pthreads

最近我开始在php中学习多线程。我很好奇Threaded类如何在下面的代码中使用object作为数组

<?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

1 个答案:

答案 0 :(得分:0)

PHP提供了Documentation接口,允许您的自定义类使用foreach循环等。

您需要实现所有五种列出的接口方法

  • 电流
  • 倒带
  • 有效

在这些方法中你究竟做了什么完全取决于你 - 通常它们用于暴露一个对象私有的数组,或者提供一些额外的过滤/等等。文档中有很多例子。

任何此类对象都可以使用Iterator函数将其可迭代内容复制到本机数组中。

对于来自pthreads的iterator_to_array类,它是一个内部PHP类,它直接实现Threaded接口。这在用户土地上是不可能的。