跳转到主要内容

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