(PHP 5 >= 5.4.0, PHP 7, PHP 8)
Closure::bind — Duplicates a closure with a specific bound object and class scope
$closure, ?object $newThis, object|string|null $newScope = "static"): ?ClosureThis method is a static version of Closure::bindTo(). See the documentation of that method for more information.
closurenewThisnull for the closure to be unbound.
newScopeExample #1 Closure::bind() example
<?php
class A {
private static $sfoo = 1;
private $ifoo = 2;
}
$cl1 = static function() {
return A::$sfoo;
};
$cl2 = function() {
return $this->ifoo;
};
$bcl1 = Closure::bind($cl1, null, 'A');
$bcl2 = Closure::bind($cl2, new A(), 'A');
echo $bcl1(), "\n";
echo $bcl2(), "\n";
?>The above example will output something similar to:
1 2