关于Closure :: bind的PHP文档中的示例包括匿名函数声明中的static.为什么?如果删除它,我找不到区别.
有:
class A { private static $sfoo = 1; } $cl1 = static function() { return self::$sfoo; }; // notice the "static" $bcl1 = Closure::bind($cl1,null,'A'); echo $bcl1(); // output: 1
无:
class A { private static $sfoo = 1; } $cl1 = function() { return self::$sfoo; }; $bcl1 = Closure::bind($cl1,'A'); echo $bcl1(); // output: 1
正如您所注意到的,它并不重要,但如果您在error_reporting中包含E_STRICT,它可能会显示为错误. (更新:不,它没有)
这就像在类方法上使用static关键字一样.如果你不在方法中引用$this,你不一定需要它(虽然这确实违反了严格的标准).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。