Closure
PHP Manual

Closure::bind

(PHP 5 >= 5.4.0, PHP 7)

Closure::bind Duplicar una clausura con un objeto vinculado y ámbito de clase especificados

Descripción

public static Closure Closure::bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] )

Este método es una versión estática de Closure::bindTo(). Véase la documentación de ese método para más información.

Parámetros

closure

La función anónima a vincular.

newthis

El objeto al que la función anónima dada debería ser vinculado, o NULL para que la clausura sea desvinculada.

newscope

El ámbito de clase a la que asociar la clausura, o 'static' para mantener el actual. Si se proporciona un objeto, el tipo del mismo se usará en su lugar. Esto determina la visibilidad de métodos protegidos y privados del objeto vinculado. No se permite pasar (un objeto de) una clase interna a este parámetro.

Valores devueltos

Devuelve un nuevo objeto Closure o FALSE en caso de error

Historial de cambios

Versión Descripción
7.0.0 newscope ya no puede ser (un objeto de) una clase interna, lo que era posible antes de esta versión.

Ejemplos

Ejemplo #1 Ejemplo de Closure::bind()

<?php
class {
    private static 
$sfoo 1;
    private 
$ifoo 2;
}
$cl1 = static function() {
    return 
A::$sfoo;
};
$cl2 = function() {
    return 
$this->ifoo;
};

$bcl1 Closure::bind($cl1null'A');
$bcl2 Closure::bind($cl2, new A(), 'A');
echo 
$bcl1(), "\n";
echo 
$bcl2(), "\n";
?>

El resultado del ejemplo sería algo similar a:

1
2

Ver también


Closure
PHP Manual