最近我开始在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
答案 0 :(得分:0)
PHP提供了Documentation接口,允许您的自定义类使用foreach
循环等。
您需要实现所有五种列出的接口方法
在这些方法中你究竟做了什么完全取决于你 - 通常它们用于暴露一个对象私有的数组,或者提供一些额外的过滤/等等。文档中有很多例子。
任何此类对象都可以使用Iterator
函数将其可迭代内容复制到本机数组中。
对于来自pthreads的iterator_to_array
类,它是一个内部PHP类,它直接实现Threaded
接口。这在用户土地上是不可能的。