php閉包bindTo方法用法

2021-09-08 18:47:06 字數 1376 閱讀 4752

從手冊知道,closure::bindto — 複製當前閉包物件,繫結指定的$this物件和類作用域。

建立並返回乙個 匿名函式, 它與當前物件的函式體相同、繫結了同樣變數,但可以繫結不同的物件,也可以繫結新的類作用域。

從我個人理解,和js裡面的call函式有點類似。可以改變閉包物件指定的作用域。

示例1:

<?php

class a

function

getclosure();}

}$ob1 = new a(1

);$cl = $ob1->getclosure();

echo $cl(),"";

$ob2 = new a(2

);$cl = $cl->bindto($ob2); //

閉包指定作用域在$ob2物件上。

echo $cl()."

"; //

2

示例2:

<?php

header("content-type:text/html;charset=utf-8");

class

yifang

class

bentian

class

views

;

$closure = $closure->bindto($obj

);

return

$closure

; }

}$view = new

views();

call_user_func($view->render(new

bentian()));

call_user_func($view->render(new yifang()));

分別對應的2個模板

1

<?php2//

tpl134

echo '********************==';5

echo

$this->title."";6

echo '武漢江漢區';7

echo '*************************==';

89 ?>

1011

<?php

12//

tpl2

1314

echo '*************************==

';15

echo

$this->title."

";16

echo '屯口經濟開發區

';17

echo '*************************==';

1819 ?>

PHP閉包之bind和bindTo

closure類摘要如下 closure方法說明 closure construct 用於禁止例項化的建構函式 closure bind 複製乙個閉包,繫結指定的 this物件和類作用域。closure bindto 複製當前閉包物件,繫結指定的 this物件和類作用域。乙個例項 複製乙個閉包,繫結...

PHP 匿名函式bind與bindTo方法使用總結

匿名函式,即乙個沒有函式名稱的函式。func function var 在定義乙個匿名函式時實際就是定義了乙個closure類的例項化物件,這個類中有三個final的方法 closure類中的建構函式用於禁止例項化,另外兩個方法bind和bindto closure bind 複製乙個閉包,繫結指定...

php閉包學習

提到閉包就不得不想起匿名函式,也叫閉包函式 closures 貌似php閉包實現主要就是靠它。宣告乙個匿名函式是這樣 func function value func 輸出test 閉包函式當成變數使用 閉包函式當作變數來使用 func 1 function value func 2 functio...