查詢

Closure::fromCallable()函式—用法及示例

「 將可呼叫物件(callable)轉換為閉包(closure) 」


函式名稱:Closure::fromCallable()

適用版本:PHP 7.1.0及以上版本

用法:Closure::fromCallable() 函式用於將可呼叫物件(callable)轉換為閉包(closure)。它接受一個可呼叫物件作為引數,並返回一個閉包。

示例:

// 示例1:將一個普通函式轉換為閉包
function greet($name) {
    echo "Hello, " . $name . "!";
}

$closure = Closure::fromCallable('greet');
$closure('Alice'); // 輸出:Hello, Alice!

// 示例2:將一個物件方法轉換為閉包
class Person {
    private $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function greet() {
        echo "Hello, " . $this->name . "!";
    }
}

$person = new Person('Bob');
$closure = Closure::fromCallable([$person, 'greet']);
$closure(); // 輸出:Hello, Bob!

// 示例3:將一個匿名函式轉換為閉包
$callable = function($message) {
    echo $message;
};

$closure = Closure::fromCallable($callable);
$closure("Hello"); // 輸出:Hello

注意事項:

  1. Closure::fromCallable() 函式僅接受可呼叫物件(包括普通函式、類方法、匿名函式等),不接受字串形式的函式名或函式陣列。
  2. 轉換後的閉包與原始可呼叫物件具有相同的行為和引數。
補充糾錯
上一個函式: Closure::call()函式
下一個函式: Closure::__construct()函式
熱門PHP函式
分享連結