我在CLI中运行了https://github.com/krakjoe/pthreads/tree/seven/examples
的所有示例。
执行每一项后,除预期结果外,我还会获得PHP Fatal error
和Fatal error
。
例如,在这种情况下https://github.com/krakjoe/pthreads/blob/seven/examples/ClosureFuture.php
我会得到:
object(Volatile)#6 (2) {
[0]=>
string(5) "Hello"
[1]=>
string(5) "World"
}
array(2) {
[0]=>
string(5) "Hello"
[1]=>
string(5) "World"
}
PHP致命错误:无法声明类Future,因为该名称已在第42行的/var/www/test/index1.php中使用
致命错误:无法声明类Future,因为该名称已在第42行的/var/www/test/index1.php中使用
在所有示例中,当扩展类关闭时发生错误。
您知道这些错误的原因以及如何纠正错误吗? 任何帮助将不胜感激。
class Future extends Thread {
private function __construct(Closure $closure, array $args = []) {
$this->closure = $closure;
$this->args = $args;
}
public function run() {
$this->synchronized(function() {
$this->result =
($this->closure)(...$this->args);
$this->notify();
});
}
public function getResult() {
return $this->synchronized(function(){
while (!$this->result)
$this->wait();
return $this->result;
});
}
public static function of(Closure $closure, array $args = []) {
$future =
new self($closure, $args);
$future->start();
return $future;
}
protected $owner;
protected $closure;
protected $args;
protected $result;
}//line 42
答案 0 :(得分:0)
检查服务器安装的PHP版本。根据doc,它的支持来自(PHP 5> = 5.3.0)。
答案 1 :(得分:0)
听起来你可能发现了一个错误,或者pthreads中有一些错误,请在github上报告。
请在报告中包含尽可能多的信息“致命错误”并不是很有用。
PHP7和pthreads v3是预发布质量,引用的示例ClosureFuture刚刚在上次提交时更新,并且稍有更改。