`yield`关键字显示此关键字的解析错误

时间:2018-11-29 12:48:57

标签: php yield

请考虑以下代码。我不知道yield关键字的工作原理。谁能描述$this为什么yield产生错误的原因。

class Collection {

    /**
     *  Dependency injection container.
     *
     *  @var Container
     */
    protected $_Container = null;

    /**
     *  Constructor.
     *
     *  @param Container $Container Dependency injection container
     *      used to build providers.
     */
    public function __construct(Container $Container) {
        $this->_Container = $Container;
    }

    // ...

    /**
     *  Finds providers of the given url.
     *
     *  @todo Use PHP generators to yield providers.
     *  @param string $url An url which may be extracted.
     *  @return array An array of Essence\Provider.
     */
    public function providers($url) {
        $filters = $this->_Container->get('filters');

        foreach ($filters as $name => $filter) {
            if ($this->_matches($filter, $url)) {
                yield $this->_Container->get($name);
            }
        }
    }
}

yield $this->_Container->get($name);显示分析错误。

这是“解析错误:语法错误,/home/test.xyz/modules/embedder/vendor/Essence/Provider/Collection.php在第71行中出现意外的'$ this'(T_VARIABLE)”

如果您能描述我如何编写yield $this->_Container->get($name);行的另一种方式,也会有所帮助。

谢谢。

0 个答案:

没有答案