PHP 7-클로저 :: call ()
Closure::call()메서드는 객체 범위를 클로저에 임시로 바인딩하고 호출하는 간단한 방법으로 추가됩니다. 에 비해 성능이 훨씬 빠릅니다.bindTo PHP 5.6.
예-PHP 7 이전
<?php
class A {
private $x = 1;
}
// Define a closure Pre PHP 7 code
$getValue = function() {
return $this->x;
};
// Bind a clousure
$value = $getValue->bindTo(new A, 'A');
print($value());
?>
다음 브라우저 출력을 생성합니다.
1
예-PHP 7 이상
<?php
class A {
private $x = 1;
}
// PHP 7+ code, Define
$value = function() {
return $this->x;
};
print($value->call(new A));
?>
다음 브라우저 출력을 생성합니다.
1