On 05.08.2024 at 18:52, Tim Düsterhus wrote: > On 8/5/24 14:52, Christoph M. Becker wrote: > >> Hmm, so far I only had skimmed the RFC and the related discussions, but >> now I checked out the suggested implementation[1]. Then I tried to >> build with PECL/uopz, and of course that failed because ZEND_EXIT is no >> longer there. Okay, quickly drop that usage; build succeeds. Then I ran >> >> <?php >> uopz_set_return("exit", function () {echo "hello";}, true); >> exit; >> ?> >> >> And got >> >> hello >> >> Previously, no output was echoed. While that seems to be fixable in > > Frankly from a userland developer PoV this looks entirely correct: If I > override the `exit()` function, then I expect the `exit()` function to > be overridden.
I should have clarified, that "fixing" means to restore the expected behavior of uopz, namely that accidential attempts to override exit with `uopz_set_return()` were silently ignored, but unless `uopz.exit=1` is set, or `uopz_allow_exit(true)` is called, exit is ignored. Especially the latter may be relied upon by tests for legacy code. Christoph