Closure::bind

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Closure::bind — 특정 바인딩된 개체 및 클래스 범위로 클로저를 복제합니다.


설명

public static Closure::bind(Closure $closure, ?object $newThis, object|string|null $newScope = "static"): ?Closure

이 메서드는 Closure::bindTo()의 정적 버전입니다. 자세한 내용은 해당 메서드의 설명서를 참조하십시오.


매개변수

closure
바인딩할 익명 함수입니다.
newThis
지정된 익명 함수가 바인딩되어야 하는 개체 또는 클로저가 바인딩 해제될 경우 null입니다.
newScope
클로저가 연결될 클래스 범위 또는 현재 항목을 유지하려면 'static'입니다. 객체가 주어지면 객체의 유형이 대신 사용됩니다. 이것은 바인딩된 객체의 protected 및 private 메서드의 가시성을 결정합니다. 내부 클래스(객체)를 이 매개변수로 전달할 수 없습니다.

반환 값

새로운 Closure 객체를 반환하거나 실패 시 null을 반환합니다.


Examples

예제 #1 Closure::bind() 예제

                  
<?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";
?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

1
2
                

기타