bind
Closure::bind
Duplicates a closure with a specific bound object and class scope
ENTITY
public
static
Closure
null
Closure::bind
Closure
closure
object
null
newThis
object
string
null
newScope
"static"
This method is a static version of Closure::bindTo. See the documentation of that method for more information.
ENTITY
closure
The anonymous functions to bind.
newThis
The object to which the given anonymous function should be bound, or ENTITY for the closure to be unbound.
newScope
The class scope to which the closure is to be associated, or 'static' to keep the current one. If an object is given, the type of the object will be used instead. This determines the visibility of protected and private methods of the bound object. It is not allowed to pass (an object of) an internal class as this parameter.
ENTITY
Returns a new Closure object, or ENTITY on failure.
ENTITY
| ENTITY | ENTITY |
|---|---|
| 8.5.0 | Binding an instance to a static closure, or binding a method from an incompatible class hierarchy, is now deprecated (these cases already emitted an E_WARNING). |
ENTITY
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";
?>
ENTITY
1
2
ENTITY
Anonymous functions
Closure::bindTo
谢谢你的反馈!