1. 程式人生 > 其它 >bindTo和bind函式的使用介紹

bindTo和bind函式的使用介紹

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類似;