On Thu, Jan 22, 2026, 12:12 Rowan Tommins [IMSoP] <[email protected]>
wrote:

> On 22/01/2026 09:12, Tim Düsterhus wrote:
> > Hi
> >
> > we just opened the vote on the “let construct (Block Scoping)” RFC
> > (which was originally proposed as “use construct”, but the keyword
> > changed as a result of the discussion).
>
>
> I have voted No.
>
> I really want block scoping as a feature in PHP, but I do not want this
> syntax.
>
>
> For those who didn't follow the discussion thread, I will try to
> summarise my reasons:
>
> - I don't think PHP is special enough to break with a strong tradition
> here. A huge family of languages use roughly the same syntax for
> variable declarations, even though they have very different details of
> how they work. That includes C and Java, but also JS and Perl, and even
> VisualBasic (all ultimately traceable to ALGOL).
>
> - Users are likely to be coming from those related languages,
> particularly JS, and are likely to be confused by how this syntax works.
>
> - For instance, they would not expect a comma-separated list to be
> equivalent to a set of nested blocks, which affects the behaviour of
> cases like let($a=new Foo, $a=new Bar)
>
> - The use cases for combining with "if" or "foreach" are interesting,
> but the result is confusing - the important control flow keyword ends up
> in the middle of the line.
>
> - For other use cases, requiring an extra block adds noise. For
> instance, if we ever add auto-capture closures, a JS-style a concise
> block-scoped declaration would be very useful to avoid accidental capture.
>
>
> PHP itself already has "ALGOL-style" declarations, for "const",
> "global", and "static". I think adding a "let" or "var" keyword with the
> same syntax would be more consistent, and more useful.
>
> There would be details to work out, but dozens of other languages to
> learn from.
>
>
> My thanks to Seifeddine and Tim for their work on this, and to Tim in
> particular for patient and respectful discussion.
>
>
> --
> Rowan Tommins
> [IMSoP]
>


I agree, the proposed syntax and nested block hell are terrible!

The traditional syntax with implicit and invisible nested block are much
better, many languages and years of trusting proved that.

>

Reply via email to