Den søn. 28. mar. 2021 kl. 13.02 skrev Deleu <deleu...@gmail.com>:
>
> This would lead to inconsistent behavior in the language when short closures 
> auto capture without the auto keyword while multi statements closure doesn't.
> One of the best features of these RFC are their cognitive definition that is 
> clear, concise, consistent and simple.

(First off, please read our mailing lists rules[1] and do not top post)

If we go by the inconsistent behavior then by that definition short
arrow functions are inconsistent with the rest of PHP as there is no
auto capture elsewhere.

This is not short arrow functions being expanded to support multi
lines, but rather the other way around, with multi line closures being
able to support auto capture which is identified by the `fn` keyword
and because of that, I would much rather have a `fn` be an alias of
`function` and then having the ability to put a keyword to declare
that you wish to use auto capture (which is consistent with the
exisiting design of PHP where you have to declare globals with the
`global` keyword or explicit imports to closures with the `use`
statement (which used to be done by the `lexical` keyword similarily
to the `global` keyword in early PHP 5.3.0 development) -- if you are
interested in this philosophy you can try lookup videos from some of
Rasmus' presentations where he explains his dislike with globals
coming from C). To back this up further, we also have the `static`
keyword which acts as a feature flag so it is not unnatural, the
naming of the keyword `auto` sure, but that is another discussion.

[1] 
https://git.php.net/?p=php-src.git;a=blob_plain;f=docs/mailinglist-rules.md;hb=HEAD

regards,

Kalle Sommer Nielsen
ka...@php.net

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to