(PHP 5 >= 5.4.0, PHP 7)
Closure::bindTo — ���Ƶ�ǰ�հ�����ָ����$this�������������
����������һ�� ���������� ���뵱ǰ����ĺ�������ͬ������ͬ��������������ͬ�Ķ���Ҳ�����µ���������
"�Ķ���"�����˺������е� $this
��ȡֵ��"��������"����һ�����͡���������������������ܹ�������Щ ˽�� �� ���� �ķ�����
Ҳ����˵����ʱ $this ���Ե��õķ������� newscope
��ij�Ա��������ͬ�ġ�
��̬�հ������аĶ���
newthis
������ֵӦ����Ϊ
NULL
��������Ȼ������ bubdTo �������ı����ǵ���������
This function will ensure that for a non-static closure, having a bound
instance will imply being scoped and vice-versa. To this end,
non-static closures that are given a scope but a NULL
instance are made
static and non-static non-scoped closures that are given a non-null
instance are scoped to an unspecified class.
Note:
�����ֻ����Ҫ����һ������������������ cloning ���档
newthis
������������һ��������
NULL
��ȡ����
newscope
�������������������������� 'static' ���ֵ�ǰ״̬�������һ��������ʹ��������������Ϊ�ĵ��������� �������Ķ���� ������˽�г�Ա �����Ŀɼ��ԡ�
�����´����� Closure ����
������ʧ��ʱ���� FALSE
Example #1 Closure::bindTo() ʵ��
<?php
class A {
function __construct($val) {
$this->val = $val;
}
function getClosure() {
//returns closure bound to this object and scope
return function() { return $this->val; };
}
}
$ob1 = new A(1);
$ob2 = new A(2);
$cl = $ob1->getClosure();
echo $cl(), "\n";
$cl = $cl->bindTo($ob2);
echo $cl(), "\n";
?>
�������̵���������ڣ�
1 2