- Output for 8.1.32, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- Locked Doing something Done After Unlocked
<?php
class Lock
{
public function __construct() { echo "Locked\n"; }
public function __destruct() { echo "Unlocked\n"; }
}
function do_while_locked(Lock $lock)
{
// The exception implicitly keeps the lock alive.
$GLOBALS['x'] = new Exception();
echo "Doing something\n";
}
function foo()
{
$lock = new Lock();
do_while_locked($lock);
echo "Done\n";
}
foo();
echo "After\n";