PHPKonf 2025 Baku

uopz_allow_exit

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_allow_exitAllows control over disabled exit opcode

Beschreibung

uopz_allow_exit(bool $allow): void

By default uopz disables the exit opcode, so exit() calls are practically ignored. uopz_allow_exit() allows to control this behavior.

Parameter-Liste

allow

Whether to allow the execution of exit opcodes or not.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 uopz_allow_exit() example

<?php
exit(1);
echo
1;
uopz_allow_exit(true);
exit(
2);
echo
2;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1

Anmerkungen

Achtung

OPcache optimizes away dead code after unconditional exit.

Siehe auch

add a note

User Contributed Notes 1 note

up
0
ryan dot marquardt at gmail dot com
13 days ago
PHP 8.4 changed exit and die to functions, so this call has no effect. Instead you can redefine those functions to do nothing.

<?php
function allow_exit( bool $allow ) {
if (
PHP_VERSION_ID < 80400 ) {
uopz_allow_exit( $allow );
} elseif (
$allow ) {
uopz_unset_return( 'exit' );
uopz_unset_return( 'die' );
} else {
uopz_set_return('exit', static function() {});
uopz_set_return('die', static function() {});
}
}
?>

Test:
<?php
echo "Calling die() with allow_exit(false)\n";
allow_exit( false );
die();
echo
"Calling die() with allow_exit(true)\n";
allow_exit( true );
die();
echo
"Unreachable\n";
?>
Calling die() with allow_exit(false)
Calling die() with allow_exit(true)
To Top