php闭包:为什么绑定到静态类时匿名函数声明中的’static’?
发布时间:2020-12-13 18:24:47 所属栏目:PHP教程 来源:网络整理
导读:关于Closure :: bind的php文档中的示例包括匿名函数声明中的static.为什么?如果删除它,我找不到区别. 有: class A { private static $sfoo = 1; }$cl1 = static function() { return self::$sfoo; }; // notice the "static"$bcl1 = Closure::bind($cl1,nu
关于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,你不一定需要它(虽然这确实违反了严格的标准). 我想PHP可以解决你的意思是Closure静态访问A由于bind()的null第二个参数 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |