- Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- acquire some_resource <locked> create fn capturing some_resource by value unset some_resource call fn unset fn </locked> 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 value\n";
$fn = function () use ($some_resource) {
$some_resource = null; // this line actually doesn't have any effect
};
echo "unset some_resource\n";
$some_resource = null;
echo "call fn\n";
$fn();
echo "unset fn\n";
$fn = null;
echo "DONE.\n";