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