--- /dev/null
+--TEST--
+Closure 036: Rebinding closure $this on property access, using scope
+--FILE--
+<?php
+
+$instance = 0;
+
+class Test {
+ private $value = 42;
+ function __construct() {
+ global $instance;
+ $this->instance = ++$instance;
+ }
+}
+
+$o = new Test;
+$o->func = function () {
+ var_dump($this->value);
+};
+$func = $o->func;
+$func();
+
+var_dump($instance);
+?>
+===DONE===
+--EXPECTF--
+int(42)
+int(1)
+===DONE===
\ No newline at end of file
closure->this_ptr = this_ptr;
if (this_ptr) {
Z_ADDREF_P(this_ptr);
+ closure->func.common.scope = Z_OBJCE_P(this_ptr);
+ } else {
+ closure->func.common.scope = NULL;
}
return closure_obj;
}