On Thursday, 9 May 2024 at 16:18, Saki Takamachi <s...@sakiot.com> wrote:
> Hi Gina, > > > Hello Internals, > > > > I would like to formally propose my idea for exit() as a function brought > > up to the list on 2024-02-24 [1] with the following RFC: > > https://wiki.php.net/rfc/exit-as-function > > > > There have been some slight tweaks to the implementation, namely that the > > transformation from a "constant" to a function is done at compile time and > > we do not hook into the behaviour of constants any longer. > > > > Let me know what you think. > > > > Best regards, > > > > Gina P. Banyard > > > > [1] https://externals.io/message/122483 > > > I generally agree :) > > My only concern is that if this function throws an error and I catch it, > won't it proceed against the user's intentions about it. I am concerned that > this may lead to data corruption and personal information leaks due to > unintentional data being inserted into the DB. > > `try { exit([]); } catch (Throwable) { // }` > > Probably no one likes to write code like this, and even if there are, there > are probably very few, but code that is written with the assumption that exit > will always stop processing may be a little dangerous. > > Is it nonsense to always stop processing even if an error occurs? Or, how > about creating an uncatchable exception class specifically for exits? Or is > this level of risk negligible? > > I am writing down the ideas I came up with, so please excuse me if there are > any mistakes in my understanding. > > Regard, > > Saki You can already escape an exit() call, either by setting an error handler that throws, or by passing a non-stringable object. See: https://3v4l.org/vR3up Best regards, Gina P. Banyard