Что касается JavaScript, мы можем сделать что-то вроде этого, чтобы привязать область к желаемой функции:
function myFunction() {
alert(this.foo);
}
var MyClass = function() {
this.foo = 1;
};
var c = new MyClass();
myFunction.call(c); // `1`
Я хочу сделать то же самое, используя PHP.В настоящее время я вижу успешную работу, подобную этой, но это относится только к анонимным функциям:
$my_function = function() {
var_dump($this->foo);
};
class MyClass {
public $foo = 1;
};
$c = new MyClass();
Closure::bind($my_function, $c)();
Это не работает:
function my_function() {
var_dump($this->foo);
}
class MyClass {
public $foo = 1;
};
$c = new MyClass();
Closure::bind('my_function', $c)(); // :(
call_user_func([$c, 'my_function']); // :(