複製一個閉包,繫結指定的$this對像和類作用域。

Closure::bind

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

Closure::bind 複製一個閉包,繫結指定的$this對像和類作用域。

說明

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

這個方法是 Closure::bindTo() 的靜態版本。檢視它的文件獲取更多資訊。

參數

closure

需要繫結的匿名函式。

newThis

需要繫結到匿名函式的對象,或者 null 建立未繫結的閉包。

newScope

想要繫結給閉包的類作用域,或者 'static' 表示不改變。如果傳入一個對象,則使用這個對象的型別名。 類作用域用來決定在閉包中 $this 對象的 私有、保護方法 的可見性。 不允許內建類(的對象)作為參數傳遞。

返回值

返回一個新的 Closure 對象,失敗時返回 null

範例

示例 #1 Closure::bind() 示例

<?php
class {
    private static 
$sfoo 1;
    private 
$ifoo 2;
}
$cl1 = static function() {
    return 
A::$sfoo;
};
$cl2 = function() {
    return 
$this->ifoo;
};

$bcl1 Closure::bind($cl1null'A');
$bcl2 Closure::bind($cl2, new A(), 'A');
echo 
$bcl1(), "\n";
echo 
$bcl2(), "\n";
?>

以上例程的輸出類似於:

1
2

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *