- Output for 8.1.7 - 8.1.33, 8.2.10 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- acquire some_resource <locked> create fn capturing some_resource by reference call fn </locked> unset fn unset some_resource DONE.
<?php
function acquire_some_resource() {
return new class {
public function __construct() { echo "<locked>\n"; }
public function __destruct() { echo "</locked>\n"; }
};
}
echo "acquire some_resource\n";
$some_resource = acquire_some_resource();
echo "create fn capturing some_resource by reference\n";
$fn = function () use (&$some_resource) {
$some_resource = null; // this line has an effect
};
echo "call fn\n";
$fn();
echo "unset fn\n";
$fn = null;
echo "unset some_resource\n";
$some_resource = null;
echo "DONE.\n";