【问题标题】:PHP Fatal error: Class 'Threaded' not found in C:\xampp\htdocs\PHP 致命错误:在 C:\xampp\htdocs\ 中找不到类 'Threaded'
【发布时间】:2017-08-16 15:06:05
【问题描述】:

我正在尝试使用 xampp 在 php 中使用 pthreads。我正在使用 Windows。按照http://php.net/manual/en/class.thread.php 中提供的步骤进行安装。

这是我正在尝试编译的示例代码:

class Task extends Threaded
{
    public $response;

    public function someWork()
    {
        $content = file_get_contents('http://google.com');
        preg_match('~<title>(.+)</title>~', $content, $matches);
        $this->response = $matches[1];
    }
}

$task = new Task;

$thread = new class($task) extends Thread {
    private $task;

    public function __construct(Threaded $task)
    {
        $this->task = $task;
    }

    public function run()
    {
        $this->task->someWork();
    }
};

$thread->start() && $thread->join();

var_dump($task->response);
//phpinfo();

这是我得到的错误:

致命错误:未找到“线程”类 C:\xampp\htdocs\practice\thread1.php 在第 2 行。

This is the phpinfo page

我尝试了相同的解决方案来自-> PHP pthreads: Fatal error: Class 'Thread' not found

我尝试比较 PHP Extension Build 版本(VC14)和 pthread 版本(发现是相同的)。线程安全也被启用。我还尝试将 pthread_VC2.dll 文件加载到 Apache 服务器的 httpd.conf 中。

但没有任何效果。请给我一个解决方案。

【问题讨论】:

  • 你扩展了错误的类Threaded !=Thread
  • @MasivuyeCokile 即使我将其更改为 Thread,我也遇到了同样的错误。

标签: php pthreads


【解决方案1】:

线

class Task extends Threaded

应该改为

class Task extends Thread

如第一个例子所示

class workerThread extends Thread

在PHP.net Site

【讨论】:

  • 这是我在做出您建议的更改后现在遇到的错误致命错误:第 2 行的 C:\xampp\htdocs\practice\thread1.php 中找不到类“线程”跨度>
  • 您必须重新检查您的 Thread 安装,因为以上内容现在应该是正确的。
  • 第 1 步:我将 pthreadVC2.dll 复制到 C:\xampp\php 目录第 2 步:将 php_pthreads.dll 复制到 C:\xampp\php\ext 目录第 3 步:复制pthreadVC2.dll 到 C:\xampp\apache\bin 目录和 C:\Windows\System32 目录。第 4 步:将行 'extension=php_pthreads.dll' 添加到 php.ini 文件中。我还有什么需要做的吗?
  • 您是否从 XAMPP 控制面板重新启动了 Apache?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-25
  • 2022-12-14
  • 1970-01-01
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
相关资源
最近更新 更多