php致命错误:无法在其中使用词法变量$ eventName作为参数名称

时间:2019-02-09 19:10:44

标签: php guzzle php-7.2

我在以下代码(标题为http lib)中出现标题中所述的错误,请告诉我如何手动修复。老实说,我不知道function()use()构造,所以不知道如何解决。

    public function once($eventName, callable $listener, $priority = 0)
{
    $onceListener = function (
        EventInterface $event,
        $eventName
    ) use (&$onceListener, $eventName, $listener, $priority) {
        $this->removeListener($eventName, $onceListener);
        $listener($event, $eventName, $this);
    };

    $this->on($eventName, $onceListener, $priority);
}

在使用(构造后,问题出在$ eventName上。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,这是由于旧的guzzle版本与php 7不兼容引起的。通过将guzzle更新到5.3.4版本,此问题已得到解决。

$ composer update guzzlehttp/guzzle

产生

Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 1 update, 0 removals
  - Updating guzzlehttp/guzzle (5.3.0 => 5.3.4): Downloading (100%)
Writing lock file
Generating autoload files