【发布时间】:2011-08-09 16:37:44
【问题描述】:
我看到 PHP 5.4 的新计划功能是:特征、数组解引用、JsonSerializable 接口和称为“closure $this support”的东西
http://en.wikipedia.org/wiki/Php#Release_history
虽然其他人要么立即清楚(JsonSeraliable,数组解引用),要么我查看了细节(特征),但我不确定“闭包 $this 支持”是什么。我在谷歌上搜索它或在 php.net 上找到任何关于它的东西都没有成功
有谁知道这应该是什么?
如果我不得不猜测,它的意思是这样的:
$a = 10; $b = 'strrrring';
//'old' way, PHP 5.3.x
$myClosure = function($x) use($a,$b)
{
if (strlen($x) <= $a) return $x;
else return $b;
};
//'new' way with closure $this for PHP 5.4
$myNewClosure = function($x) use($a as $lengthCap,$b as $alternative)
{
if(strlen($x) <= $this->lengthCap)) return $x;
else
{
$this->lengthCap++; //lengthcap is incremented for next time around
return $this->alternative;
}
};
意义(即使这个例子是微不足道的)是在过去,一旦构造了闭包,绑定的“使用”变量就固定了。有了“closure $this support”,他们更像是你可以搞砸的成员。
这听起来正确和/或接近和/或合理吗?有谁知道这个“关闭 $this 支持”是什么意思?
【问题讨论】:
-
FWIW,5.4 还不是 PHP 主干的官方名称——它在内部仍然被称为“5.3.99”,关于它是否真的会存在一些争议5.4 与否(与 6.0 相比,这将与大型 Unicode 重写“6.0”分支无关)。
-
啊,很高兴知道。感谢您修复标签