PHP 閉包::call()

PHP 7 的 Closure::call() 有著更好的效能,將一個閉包函數動態綁定到一個新的物件實例並呼叫執行該函數。

實例

<?php
class A {
    private $x = 1;
}

// PHP 7 之前版本定义闭包函数代码
$getXCB = function() {
    return $this->x;
};

// 闭包函数绑定到类 A 上
$getX = $getXCB->bindTo(new A, 'A'); 

echo $getX();
echo "<br/>";

// PHP 7+ 代码
$getX = function() {
    return $this->x;
};
echo $getX->call(new A);
?>

以上程式執行輸出結果為:

1
1
繼續學習
||
<?php class A { private $x = 1; } // PHP 7 之前版本定义闭包函数代码 $getXCB = function() { return $this->x; }; // 闭包函数绑定到类 A 上 $getX = $getXCB->bindTo(new A, 'A'); echo $getX(); echo "<br/>"; // PHP 7+ 代码 $getX = function() { return $this->x; }; echo $getX->call(new A); ?>