php pthreads:CLI中的'PHP致命错误','致命错误'

时间:2015-10-10 06:01:32

标签: php pthreads

我在CLI中运行了https://github.com/krakjoe/pthreads/tree/seven/examples的所有示例。 执行每一项后,除预期结果外,我还会获得PHP Fatal errorFatal 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

2 个答案:

答案 0 :(得分:0)

检查服务器安装的PHP版本。根据doc,它的支持来自(PHP 5> = 5.3.0)。

答案 1 :(得分:0)

听起来你可能发现了一个错误,或者pthreads中有一些错误,请在github上报告。

请在报告中包含尽可能多的信息“致命错误”并不是很有用。

PHP7和pthreads v3是预发布质量,引用的示例ClosureFuture刚刚在上次提交时更新,并且稍有更改。