Just chiming in to voice strong support for this RFC. This is a key piece toward making PHP code statically analyzable. If it becomes required at the call site, such as in an edition of the language, it will significantly enhance the ability to reason about code and probably make it more correct as well. As a small example, consider this method on an Optional type class:
function map(callable $f): Optional { if ($this->enabled) { return new Optional($f($this->data)); } else { return $this; } } The intent is to return a new optional or an empty one, but if you pass a closure that accepts something by reference you can change the original, which is not intended at all. For people who defend against it, it requires saving `$this->data` to a local variable, then passing in the local. Then if the user does a call-by-reference it will affect the local, not the object's data. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php