익명 함수(람다라고도 함)는 Closure 클래스의 개체를 반환합니다. 이 클래스에는 익명 함수에 대한 추가 제어를 제공하는 몇 가지 추가 메서드가 있습니다.
Closure { /* Methods */ private __construct ( void ) public static bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] ) : Closure public bindTo ( object $newthis [, mixed $newscope = "static" ] ) : Closure public call ( object $newthis [, mixed $... ] ) : mixed public static fromCallable ( callable $callable ) : Closure }
private Closure::__construct ( void ) — 이 메서드는 Closure 클래스의 인스턴스화를 비활성화하는 데에만 사용됩니다. 이 클래스의 객체는 익명 함수에 의해 생성됩니다.
public static Closure::bind ( Closure $closure , object $newthis [, Mixed $newscope = "static" ] ) − Closure — 특정 바인딩 개체 및 클래스 범위를 사용하여 클로저를 복사합니다. 이 메소드는 Closure::bindTo()의 정적 버전입니다.
public Closure::bindTo ( object $newthis [, Mixed $newscope = "static" ] ) − Closure — 새 바인딩 개체와 클래스 범위를 사용하여 클로저를 복사합니다. 동일한 본문 및 바인드 변수를 사용하지만 개체와 새 클래스 범위가 다른 새 익명 함수를 만들고 반환합니다.
public Closure::call ( object $newthis [,mixed $... ] ) −mixed — 임시로 클로저를 newthis에 바인딩하고 주어진 인수로 호출합니다.
온라인 데모
<?php class A { public $nm; function __construct($x){ $this->nm=$x; } } // Using call method $hello = function() { return "Hello " . $this->nm; }; echo $hello->call(new A("Amar")). "";; // using bind method $sayhello = $hello->bindTo(new A("Amar"),'A'); echo $sayhello(); ?>
위 프로그램은 다음과 같은 출력을 표시합니다
Hello Amar Hello Amar
위 내용은 PHP 클로저 클래스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!