Re: Expression code blocks

From: Date: Thu, 22 Jun 2023 11:50:29 +0000
Subject: Re: Expression code blocks
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-120659@lists.php.net to get a copy of this message
Hello Rowan, Ilja, (sorry I did not see these replies sooner, I do some forwarding but it failed) On Sat, 17 Jun 2023 at 16:59, Rowan Tommins <rowan.collins@gmail.com> wrote: > > On 17/06/2023 12:26, Ilija Tovilo wrote: > > I don't believe blocks for general expressions are that useful in PHP > > due to the lack of block scoping. Your suggestion to make the block a > > separate closure could avoid that (as well as the optimizer issue > > mentioned below) but comes with new issues, like making modification > > of captured values impossible without by-ref capturing. > > > I've been pondering various things in this space for a while, > particularly since the last auto-capture closures RFC. I haven't quite > coalesced on a coherent concept, but there are a few things that I think > inter-relate: > > * Opting into block-scoped variables, while retaining full access to the > outer scope, like JS "let" > * Code blocks as some kind of first-class thing, distinct from closures I think this would be my preferred option. We would have to discuss how variables are scoped and captured, but I could myself being happy with different options. Currently variables from outside in short closures are auto-captured by value, and nothing leaks outside: https://3v4l.org/mdJvM I would be happy if it works the same for expression code blocks.

« previous php.internals (#120659) next »