【问题标题】:PHP CodeSniffer: use of self::$types inside closurePHP CodeSniffer:在闭包内使用 self::$types
【发布时间】:2018-01-12 18:19:56
【问题描述】:

在下面的 sn-p 上运行 PHP CodeSniffer:

return array_filter($methods, function ($method) {
    return in_array(
        strtolower($method['type']),
        self::$types
    );
});

我收到此错误消息:

在闭包中使用 self::$types。

报告的错误究竟是什么(为什么我不能在闭包内使用self::$types)以及如何解决?

注意:无论如何,代码都可以正常工作。报告的错误来自 CodeSniffer(不是 PHP 错误)。

【问题讨论】:

  • 如果你对 PHPCS 使用-s 命令行参数,它会告诉你是什么嗅探产生了错误,以及来自什么编码标准。知道代码后,也许您可​​以找到更多信息,或者找出向谁询问。

标签: php codesniffer


【解决方案1】:
return array_filter($methods, function ($method) use (self::$types) {
    return in_array(
        strtolower($method['type']),
        self::$types
    );
});

在此处阅读有关从父范围继承的信息:http://php.net/manual/en/functions.anonymous.php

【讨论】:

  • 您能否详细说明您的答案,请:).. 为什么我不能在闭包内使用 self::$types 以及为什么添加 use (self::$types) 可以解决错误?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-23
  • 1970-01-01
  • 2012-12-24
  • 2018-10-11
  • 1970-01-01
  • 2018-07-20
  • 2016-04-10
相关资源
最近更新 更多