bindTo和bind函式的使用介紹
阿新 • • 發佈:2021-10-16
bind和bindTo函式兩者的區別不大,只是bind是靜態函式,而bindTo是非靜態函式
主要作用:複製一個閉包,繫結指定的$this物件和類作用域。
根據傳遞的引數不同可以分為幾種情況:
1、只繫結$this物件(在閉包中,只可以使用$this,不可以使用static)
2、只繫結類作用域(在閉包中,只可以使用static,不可以使用$this)
3、同時繫結$this物件和類作用域(在閉包中,可以使用$this和static)
public function bindTo(?object $newThis, object|string|null $newScope = 'static') {}
bindTo函式:
第一個引數如果傳遞null,則閉包函式中無法使用$this;傳遞類的例項,則可以使用$this
第二個引數如果傳遞null或不傳,則閉包函式中無法使用static;傳遞類的作用域,則可以使用static
public static function bind(Closure $closure, ?object $newThis, object|string|null $newScope = 'static') {}
bind函式:第一個引數是一個閉包函式,其他兩個引數使用和bindTo類似;