PHP致命错误:无法将词法变量$EventName用作中的参数名

2022-09-02 00:00:00 php guzzle php-7.2

我有以下代码(GuzzHttplib)标题中所说的错误,请告诉我如何手动修复它。老实说,我对函数()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(构造。


解决方案

我遇到了同样的问题,这是由于较早版本的GUZLE与php 7不兼容造成的。通过将GUZLE更新到版本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

相关文章