Я вижу, что новые запланированные функции для PHP 5.4: черты, разыменование массивов, JsonSerializable и что-то, называемое ' closure $ this support
'
http://en.wikipedia.org/wiki/Php#Release_history
В то время как остальные либо сразу очищаются (JsonSerialiable, разыменование массива) или я просмотрел детали (черты), я не уверен, что такое «закрытие $ эта поддержка». Я безуспешно искал это в Google или нашел что-нибудь об этом на 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;
}
};
Значение (даже если этот пример тривиален) состоит в том, что в прошлом, когда закрытие было построено, связанные переменные 'use' фиксировались. С «закрытием $ эта поддержка» они больше похожи на участников, с которыми можно связываться.
Звучит ли это правильно и / или близко и / или разумно? Кто-нибудь знает, что означает «закрытие этой поддержки»?