On Wed, Jan 21, 2026, at 1:01 PM, Claude Pache wrote:
>> Le 13 janv. 2026 à 23:19, Larry Garfield <[email protected]> a écrit :
>> 
>> On Tue, Nov 4, 2025, at 2:13 PM, Larry Garfield wrote:
>>> Arnaud and I would like to present another RFC for consideration: 
>>> Context Managers.
>>> 
>>> https://wiki.php.net/rfc/context-managers
>>> 
>>> You'll probably note that is very similar to the recent proposal from 
>>> Tim and Seifeddine.  Both proposals grew out of casual discussion 
>>> several months ago; I don't believe either team was aware that the 
>>> other was also actively working on such a proposal, so we now have two. 
>>> C'est la vie. :-)
>>> 
>>> Naturally, Arnaud and I feel that our approach is the better one.  In 
>>> particular, as Arnaud noted in an earlier reply, __destruct() is 
>>> unreliable if timing matters.  It also does not allow differentiating 
>>> between a success or failure exit condition, which for many use cases 
>>> is absolutely mandatory (as shown in the examples in the context 
>>> manager RFC).
>>> 
>>> The Context Manager proposal is a near direct port of Python's 
>>> approach, which is generally very well thought-out.  However, there are 
>>> a few open questions as listed in the RFC that we are seeking feedback 
>>> on.
>>> 
>>> Discuss. :-)
>> 
>> Hi folks.  The holidays are over, so we're back on Context Managers.
>> 
>> [...]
>> 
>> 
>> --Larry Garfield
>
>
> Hi,
>
> Just a small question. What happens when an `exit`/`die` instruction is 
> executed inside a `using` block? Is the relevant `exitContext()` 
> handler invoked, just like for an early `return` or `break`?
>
> This is probably self-evident, but it is worth to state it explicitly, 
> because, for some hysterical reason, relevant `finally` blocks are 
> *not* executed with `exit`.
>
>
> —Claude

At runtime, it's "just" a finally block, so it would behave the same.  Which I 
agree is absurd, but this is PHP after all...

--Larry Garfield

Reply via email to